perm filename POX.XGP[UP,DOC]19 blob sn#441044 filedate 1979-05-10 generic text, type T, neo UTF8
/TMAR=200/PMAR=1998/BMAR=2
/USET=295␈↓ ¬ε␈β↓H␈¬P␈¬βrototype␈¬ O␈¬βverlay␈¬ X␈¬βerographics
␈↓ ¬
␈β↓k␈¬β(name suggested by R.W.Gosper)
␈↓ β;␈βα	␈¬βBy Robert Elton Maas, with revisions by Ralph E. Gorin and R.E.M.
␈↓ ∧3␈βα'␈¬α(POX writeup, last edited 1979 MAY 10  0:58)
␈↓ α_␈βαc␈¬βPOX␈αis␈αa␈αprogram␈αfor␈αmaking␈αdocuments␈αthat␈αtake␈αadvantage␈αof␈αthe␈αspecial␈αfeatures␈αavailable␈αon
␈↓ ↓H␈ββ↓␈¬βthe␈αXerox␈αGraphics␈αPrinter␈α(XGP).␈α⊗The␈αspecial␈αfeatures␈αthat␈αboth␈αPOX␈α
and␈α
PUB␈α
provide␈α
are␈α
mainly␈α
font
␈↓ ↓H␈ββ∨␈¬βswitching,␈α⊂text␈α⊂justification␈α⊂and␈α∂automatic␈α∂"every␈α∂page"␈α∂actions␈α∂such␈α∂as␈α∂page␈α∂numbering.␈α≡POX␈α∂also
␈↓ ↓H␈ββ=␈¬βprovides␈α∞vectors,␈α∞positioning␈α∞of␈α∞text␈α∞etc.␈α∞to␈α∞an␈α∞accuracy␈α∞of␈α
1/200␈α
inch,␈α
composition␈α
of␈α
text␈α
etc.␈α
into
␈↓ ↓H␈ββ[␈¬β"overlays"␈αwhich␈αcan␈αbe␈αcopied␈αand␈αprocessed␈αwithout␈αlosing␈αthe␈αrelative␈αpositions␈αof␈αthe␈αcomponents
␈↓ ↓H␈ββy␈¬β(somewhat␈αlike␈αsets␈αin␈αSUDS,␈αthe␈αHelliwell␈αdrawing␈αprogram).␈α⊗POX␈αdoes␈α
not␈α
yet␈α
provide␈α
text␈α
responses
␈↓ ↓H␈β∧↔␈¬βor␈α⊃footnotes.␈α"It␈α⊃is␈α⊃possible␈α⊃to␈α⊂set␈α⊂up␈α⊂cross-references␈α⊂or␈α⊂indexes/contents␈α⊂by␈α⊂means␈α⊂of␈α⊂macros,
␈↓ ↓H␈β∧5␈¬βproviding␈αthat␈αthere␈αare␈αno␈αforward␈αreferences␈α(i.e.,␈αeverything␈αis␈αdefined␈αbefore␈αit␈αis␈αused␈α--␈αPOX␈αis
␈↓ ↓H␈β∧S␈¬βone-pass␈α
only).␈α~Neither␈α
POX␈α
nor␈α
PUB␈α
can␈α
yet␈α
be␈α
used␈α
interactively␈α
like␈αGEOMED␈αand␈αSUDS,␈αbut␈αit␈αis
␈↓ ↓H␈β∧q␈¬βpossible␈αto␈αuse␈αXGPSYN␈αto␈αview␈αa␈αdocument␈αon␈αthe␈αvideo␈αsynthesizer␈αbefore␈αmaking␈αhardcopy␈αon␈αthe
␈↓ ↓H␈β¬∂␈¬βXGP.
␈↓ α_␈β¬-␈¬βWhen␈αboth␈αPOX␈αand␈αPUB␈αprovide␈αthe␈αdesired␈αfeatures,␈αi.e.,␈αnone␈αof␈αthe␈αfeatures␈αthat␈αonly␈α
one␈α
of
␈↓ ↓H␈β¬K␈¬βthem␈α∪has␈α∪are␈α∪needed,␈α∪POX␈α∪is␈α∪usually␈α∪preferred␈α∪because␈α∪of␈α∪its␈α∪greater␈α∪speed.␈α%For␈α∩example,␈α∩a
␈↓ ↓H␈β¬i␈¬βbenchmark␈α∞text␈α∞consisting␈α∞of␈α∞10k␈α∞of␈α∞fully-justified␈α∞text␈α∞took␈α∞42.5␈α∞seconds␈α
of␈α
runtime␈α
using␈α
PUB,␈α
4.5
␈↓ ↓H␈βεπ␈¬βseconds␈αusing␈αPOX␈αwithout␈αthe␈αsimulator,␈α
and␈α
10.9␈α
seconds␈α
using␈α
POX␈α
with␈α
the␈α
simulator␈α
(see␈α
below␈α
for
␈↓ ↓H␈βε%␈¬βexplanation␈α
of␈α
the␈α
simulator).
␈↓ α_␈βεC␈¬βPOX␈α
has␈α
at␈α
least␈α
one␈αintractable␈αbug␈α--␈αthis␈αbug␈αand␈αsome␈αothers␈αrecently␈αfixed␈αare␈αlisted␈αin␈αa
␈↓ ↓H␈βεa␈¬βlater␈αsection␈αof␈αthis␈αwriteup␈α--␈αreferences␈αto␈αthese␈αbugs␈αare␈αmade␈αfrom␈αvarious␈αplaces␈αin␈α
this␈α
writeup,
␈↓ ↓H␈βε␈␈¬βin␈αthe␈αformat␈α"␈¬αsee␈αbug#n␈¬β"␈αwhere␈αn␈αis␈αthe␈αnumber␈αof␈αthe␈αbug␈αin␈αthat␈αlist.␈α⊗Users␈α
should␈α
report␈α
any␈α
bugs
␈↓ ↓H␈βπ≥␈¬βthey␈αfind␈αthat␈αare␈αnot␈αin␈αthat␈αlist,␈αor␈αwhich␈αare␈αlisted␈αas␈α"fixed".␈α⊗Errors␈αin␈αthis␈αwriteup␈αshould␈αalso␈αbe
␈↓ ↓H␈βπ;␈¬βreported␈α
before␈α
too␈α
many␈α
unwary␈α
users␈α
see␈α
them␈α
and␈α
expect␈α
POX␈α
to␈α
do␈α
things␈α
it␈α
can't␈α
do.
␈↓ α_␈βπw␈¬βPOX␈αtakes␈αa␈αfile␈αas␈αinput␈αand␈αproduces␈αan␈αoutput␈αfile␈αthat␈αis␈αsuitable␈αfor␈αspooling␈αwith␈αthe␈αXGP
␈↓ ↓H␈βλ∃␈¬βspooler␈α
(␈¬∂XSPOOL␈¬β␈α
command).␈α_The␈αinput␈αfile␈αcontains␈αinstructions␈αto␈αPOX␈αand␈αthe␈αtext␈αof␈αthe␈αdocument.
␈↓ ↓H␈βλ3␈¬βPOX␈α∂takes␈α∂character␈α∂sequences␈α∞as␈α∞commands.␈α≤Each␈α∞command␈α∞sequence␈α∞is␈α∞preceded␈α∞by␈α∞a␈α∞character,
␈↓ ↓H␈βλQ␈¬βcalled␈α∩the␈¬α␈α∩Brick␈α∩Character␈¬β.␈α"The␈α⊃first␈α⊃character␈α⊃in␈α⊃the␈α⊃file␈α⊃(ignoring␈α⊃TV␈α⊃directories␈α⊃and␈α⊃SOS␈α⊃line
␈↓ ↓H␈βλo␈¬βnumbers)␈α
is␈α
taken␈α
by␈α
POX␈α
as␈α
the␈α
escape␈α
character␈α
(See␈α
note␈α
1).␈α~Thus,␈α
the␈α
user␈α
gets␈α
to␈α
specify␈αthe
␈↓ ↓H␈β	
␈¬βescape␈α
character.␈α~The␈α
escape␈αcharacter␈αcan␈αbe␈αarbitrary,␈αbut␈αreason␈αdictates␈αthat␈αit␈αshould␈αbe␈αsome
␈↓ ↓H␈β	+␈¬βcharacter␈α∂that␈α∂appears␈α∂infrequently␈α∂(or␈α∂not␈α∂at␈α∂all)␈α∂in␈α∂the␈α∂text␈α∂of␈α∂the␈α∂document.␈α≡The␈α∂most␈α∂popular
␈↓ ↓H␈β	G␈¬βchoices␈α∂for␈α∂the␈α∂escape␈α∂character␈α∂are␈α∂\␈α∂_␈α∂and␈α∂$.␈α≡In␈α∂the␈α∞remainder␈α∞of␈α∞this␈α∞document,␈α∞the␈α∞symbol␈¬␈α∞1
␈↓ ↓H␈β	g␈¬β(pronounced␈α"brick"␈α--␈αyou␈αwon't␈αfind␈αit␈αon␈αyour␈αkeyboard␈α--␈αit's␈αASCII␈α
061␈α
in␈α
font␈α
75224X.FNT[1,REM]
␈↓ ↓H␈β
¬␈¬βif␈α∩you␈α∩really␈α∩want␈α∩to␈α∩know␈α∩how␈α∩I␈α∩generated␈α∩it␈α∩in␈α⊃this␈α⊃writeup)␈α⊃represents␈α⊃your␈α⊃current␈α⊃Escape
␈↓ ↓H␈β
#␈¬βCharacter,␈α∂whatever␈α∂it␈α∂may␈α∂be␈α∂at␈α∂the␈α∞moment;␈α∞however,␈α∞in␈α∞some␈α∞examples␈α∞below␈α∞the␈α∞actual␈α∞escape
␈↓ ↓H␈β
A␈¬βcharacter␈α
will␈α
be␈α
shown␈α
rather␈α
than␈α
the␈α
brick␈α
symbol.
␈↓ α_␈β
←␈¬βI␈αhaven't␈αreally␈αdecided␈αwhat␈αto␈α
call␈α
these␈α
commands,␈α
so␈α
until␈α
I␈α
make␈α
a␈α
decision␈α
you␈α
may␈α
find␈α
that
␈↓ ↓H␈β
⎇␈¬βat␈αsome␈αplaces␈αin␈αthis␈αwriteup␈αthey␈αare␈αcalled␈α"escape␈αcommands",␈α
at␈α
other␈α
places␈α
"brick␈α
commands"␈α
or
␈↓ ↓H␈β≠␈¬β"POX␈α∞commands".␈α~The␈α
commands␈α
the␈α
XGP␈α
understands,␈α
beginning␈α
with␈α
an␈α
ASCII␈α
177␈α
which␈α
is␈α
rubout,
␈↓ ↓H␈β9␈¬βhave␈α∞entirely␈α∞different␈α∞syntax␈α∞even␈α∞for␈α∞commands␈α∞that␈α∞perform␈α∞almost␈α∞the␈α∞same␈α∞function␈α∞as␈α
a␈α
brick
␈↓ ↓H␈βW␈¬βcommand.␈α⊗These␈αare␈αreferred␈α
to␈α
as␈α
"XGP␈α
escape␈α
sequences"␈α
or␈α
"rubout-style␈α
commands"␈α
to␈α
distinguish
␈↓ ↓H␈βu␈¬βthem␈α∞from␈α∞brick␈α∞commmands.␈α≤These␈α∞XGP␈α∞escape␈α
sequences␈α
are␈α
normally␈α
present␈α
only␈α
in␈α
the␈α
output
␈↓ ↓H␈β∪␈¬βfrom␈α⊂POX␈α⊂and␈α⊂PUB,␈α⊂except␈α⊂when␈α⊂POX␈α⊂is␈α⊂used␈α⊂as␈α⊂post-processor␈α∂for␈α∂some␈α∂other␈α∂program,␈α∂such␈α∂as
␈↓ ↓H␈β1␈¬βXLITER.␈α⊗For␈αthis␈αand␈αsimilar␈αuse,␈αPOX␈αcan␈αaccept␈αcertain␈αsystem␈αXGP␈αescape␈αsequences␈αat␈αsome␈α
places
␈↓ ↓H␈βO␈¬βin␈αthe␈αinput␈αfile.␈¬¬␈α⊗What␈αPOX␈αdoes␈αis␈αto␈αconvert␈αthese␈αescape␈αsequences␈αinto␈αthe␈αequivalent␈αbrick␈αcommand␈αupon␈αinput,␈αthen␈αto
␈↓ ↓H␈βq␈¬¬process␈α∞the␈α∞brick␈α
command␈α
in␈α
the␈α
usual␈α
way.␈α~Thus␈α
the␈α
XLITER␈α
program␈α
can␈α
transliterate␈α
phonemes␈α
into␈α
cyrillic␈α
characters␈α
with
␈↓ ↓H␈β
∂␈¬¬rubout-style␈α
font␈α
selects␈α
(to␈α
allow␈α
direct␈α
listing␈α
on␈α
the␈α
XGP␈α
if␈α
desired),␈α
and␈α
POX␈α
can␈α
treat␈α
the␈α
cyrillic␈α
as␈α
text,␈α
treat␈α
the␈α
font-selects
␈↓ ↓H␈β
'␈¬¬generated␈α	in␈α	the␈α	process␈α	of␈α	transliteration␈α	as␈¬␈α	1␈¬∂F␈¬¬␈α	commands,␈α	and␈α	process␈α	other␈α	brick␈α	commands␈αλthat␈αλwere␈αλin␈αλthe␈αλoriginal␈αλtext␈αλfile␈αλ(that
␈↓ ↓H␈β
K␈¬¬were␈α
passed-as-is␈α
by␈α
XLITER).
␈↓ α_␈β∞β␈¬βTo␈α
run␈α
POX,␈α
use␈α
the␈α
system␈α
command␈¬∂␈α
R␈α
POX␈¬β␈α
(or␈¬∂␈α
RU␈α
POX[1,REM]␈¬β␈α
if␈αyou␈αwant␈αto␈αuse␈αthe␈αlatest
␈↓ ↓H␈β∞!␈¬βexperimental␈α∩version␈α∩of␈α∩POX␈α∩if␈α∩one␈α∩exists).␈α$POX␈α∩wants␈α⊃to␈α⊃see␈α⊃a␈α⊃command␈α⊃of␈α⊃the␈α⊃form:␈¬¬␈α⊃<OUTPUT
␈↓ ↓H␈β∞?␈¬¬FILE>␈¬∂←␈¬¬<INPUT␈αFILE>␈¬β.␈α_If␈αthe␈¬¬␈α<OUTPUT␈αFILE>␈¬β␈αterm␈αis␈αomitted␈α(the␈αarrow␈αis␈αthen␈αoptional)␈αthen␈αthe␈αoutput␈αfile
␈↓ ↓H␈β∞]␈¬βwill␈α
have␈α
the␈α
same␈α
name␈α
as␈α
the␈α
input␈α
file,␈α
and␈α
"␈¬∂.XGP␈¬β"␈α
extension.␈α∀If␈α
only␈α
the␈α
extension␈α
of␈α
the␈α
output␈α
file
␈↓ ↓H␈β∞{␈¬βis␈α∂omitted,␈α∂"␈¬∂.XGP␈¬β"␈α∞will␈α∞be␈α∞used.␈α≤If␈α∞the␈α∞extension␈α∞of␈α∞the␈α∞input␈α∞file␈α∞is␈α∞omitted␈α∞and␈α∞the␈α∞period␈α∞is␈α∞also
␈↓ ↓H␈β∂→␈¬βomitted,␈α"␈¬∂.POX␈¬β"␈αis␈αassumed,␈αand␈αif␈αthat␈αfile␈αisn't␈αfound␈αthen␈αnull␈αextension␈αis␈αtried.␈α_If␈αthe␈αextension␈αis
␈↓ ↓H␈β∂7␈¬βomitted␈α
but␈α
the␈α
period␈αis␈αretained,␈αonly␈αthe␈αnull␈αextension␈αis␈αtried.␈α_--␈αAlternately,␈αinstead␈αof␈αdoing␈¬∂␈αR
␈↓ 	~␈¬α 1␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	~␈¬α 2␈↓ βt␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬∂POX␈¬β,␈αthe␈αsystem␈αcommand␈¬∂␈αPOX␈¬β␈αmay␈αbe␈αfollowed␈αby␈αthe␈¬¬␈α<OUTPUT␈αFILE>␈¬∂←␈¬¬<INPUT␈αFILE>␈¬β␈αsyntax␈αall␈αon␈αone␈αline.
␈↓ ↓H␈β↓f␈¬β--␈αLater␈αif␈αyou␈αhaven't␈αlogged␈αout␈αand␈αhave␈αthe␈αsame␈αalias,␈αyou␈αcan␈αmake␈αPOX␈αuse␈αthe␈αsame␈αcommand,
␈↓ ↓H␈βα∧␈¬βwithout␈α⊂retyping␈α⊂it,␈α⊂by␈α⊂starting␈α∂POX␈α∂at␈α∂the␈α∂RPG␈α∂starting␈α∂address.␈α≡For␈α∂example,␈α∂you␈α∂can␈α∂say␈α∂"␈¬∂GET
␈↓ ↓H␈βα"␈¬∂SYS:POX␈¬β"␈α
then␈α
say␈α
"␈¬∂S␈α
+1␈¬β",␈α
or␈α
from␈α
E␈α
you␈α
can␈α
give␈α
the␈α
extend-mode␈α
command␈α
"␈¬∂RU␈α
POX[1,3]␈¬β".
␈↓ α_␈βα@␈¬βIf␈αall␈αis␈αwell␈αwith␈αthe␈αinput␈αfile,␈αPOX␈αwill␈αrun␈αand␈αproduce␈αan␈αoutput␈αfile␈αsuitable␈αfor␈¬∂␈αXSPOOL␈¬βing.
␈↓ ↓H␈βα↑␈¬βIf␈αyou␈αare␈αat␈αa␈αlocal␈αdisplay,␈αPOX␈α
will␈α
load␈α
the␈α
appropriate␈¬∂␈α
XSPOOL␈¬β␈α
command␈α
into␈α
your␈α
line␈α
editor,␈α
so␈α
all
␈↓ ↓H␈βα|␈¬βyou␈α
have␈α
to␈α
do␈α
is␈α
type␈α
return␈α
to␈α
spool␈α
the␈α
file.
␈↓ ¬;␈ββ3␈¬Sample POX input file
␈↓ βn␈ββQ␈¬(I assume you will have your files in E/TV format)
␈↓ ↓H␈β∧∩␈¬∂COMMENT ⊗   VALID 00002 PAGES
␈↓ ↓H␈β∧0␈¬∂C REC  PAGE   DESCRIPTION
␈↓ ↓H␈β∧N␈¬∂C00001 00001
␈↓ ↓H␈β∧l␈¬∂C00002 00002␈↓ βH\|\\M0FIX25\M1NGR25\ This is a comment, after the brick-semicolon
␈↓ ↓H␈β¬
␈¬∂C00004 ENDMK
␈↓ ↓H␈β¬(␈¬∂C⊗;
␈↓ ∧i␈β¬J␈¬¬<FORMFEED> i.e., page mark after directory page
␈↓ ↓H␈β¬d␈¬∂\|\\M0FIX25;\M1NGR25;\; This is a comment, after the brick-semicolon
␈↓ ↓H␈βεα␈¬∂\; Font #0 is here in case title pages needed -- If we
␈↓ ↓H␈βε ␈¬∂\; don't explicitly specify it here, the system will invent a font#0.
␈↓ ↓H␈βε>␈¬∂\←L\+=100;\→L\; Move left margin in by 1/2 inch
␈↓ ↓H␈βε\␈¬∂\F1\CTITLE OF THIS DOCUMENT IS HERE
␈↓ ↓H␈βπ_␈¬∂\J␈↓ αHThis is a sample document, with justified text, and a centered
␈↓ ↓H␈βπ6␈¬∂title.  It demonstrates to the person using POX for the first time,
␈↓ ↓H␈βπT␈¬∂just what is involved in a simple POX manuscript (borrowing terminology
␈↓ ↓H␈βπr␈¬∂from the PUB manual, in which a "manuscript" is the uncompiled form
␈↓ ↓H␈βλ⊂␈¬∂you see here and a "document" is the compiled file all
␈↓ ↓H␈βλ.␈¬∂ready to output to some device such as lineprinter or XGP).  If you
␈↓ ↓H␈βλL␈¬∂have any doubt what the output on the XGP would look like if
␈↓ ↓H␈βλj␈¬∂this document were actually compiled etc., I suggest you create
␈↓ ↓H␈β	λ␈¬∂a text file with E or SOS and copy this page (after the formfeed
␈↓ ↓H␈β	&␈¬∂above, until the end-of-file location below), and actually
␈↓ ↓H␈β	D␈¬∂compile it and XSPOOL it.\.
␈↓ ε␈β	f␈¬¬<END OF FILE>
␈↓ βZ␈β
→␈¬THIS WRITEUP -- ORGANIZATION, MODES, NOTATION
␈↓ α_␈β
<␈¬βEach␈α
section␈α
in␈αthis␈αwriteup␈αthat␈αdescribes␈αbrick-commands␈αconsists␈αof␈αthe␈αfollowing:␈α_Summary
␈↓ ↓H␈β
Z␈¬βof␈αwhat␈αit's␈αall␈αused␈αfor,␈αsyntax␈α
of␈α
each␈α
command,␈α
the␈α
corresponding␈α
descriptions␈α
of␈α
what␈α
function␈α
each
␈↓ ↓H␈β
x␈¬βcommand␈αperforms,␈αexamples␈αof␈αthe␈αuse␈αof␈αthe␈αcommands␈αin␈αthis␈αwriteup␈α
itself␈α
with␈α
general␈α
references
␈↓ ↓H␈β⊗␈¬βas␈α⊃to␈α⊃where␈α⊃to␈α⊃look␈α⊃to␈α⊃see␈α⊃the␈α⊃effect␈α⊂generated,␈α⊂additional␈α⊂examples␈α⊂of␈α⊂use␈α⊂(input␈α⊂text␈α⊂followed
␈↓ ↓H␈β4␈¬βimmediately␈α
by␈α
the␈α
effect␈α
generated␈α
in␈α
output).
␈↓ α_␈βp␈¬βSome␈α⊂brick-commands␈α⊂will␈α⊂put␈α∂the␈α∂command␈α∂scanner␈α∂in␈α∂a␈α∂special␈α∂mode␈α∂until␈α∂such␈α∂time␈α∂as␈α∂an
␈↓ ↓H␈β∞␈¬βappropriate␈α"get␈αout␈αof␈αthis␈αmode"␈αcharacter␈αor␈αbrick-command␈αis␈αseen,␈αat␈αwhich␈αtime␈αit␈αwill␈αreturn␈αto
␈↓ ↓H␈β,␈¬βits␈αprevious␈αmode.␈α⊗Initially␈α(after␈αeating␈αthe␈αdirectory␈αpage␈αand␈αthe␈αfirst␈αcharacter␈αor␈αtwo␈αof␈α
the␈α
input
␈↓ ↓H␈βJ␈¬βfile)␈α
the␈αcommand␈αscanner␈αis␈αin␈α"PASS-AS-IS"␈αmode␈αwhich␈αmeans␈αthat␈αcarriage-return␈αputs␈αyou␈αat␈αthe
␈↓ ↓H␈βh␈¬βleft␈α∞margin,␈α∞linefeed␈α∞moves␈α∞down␈α∞to␈α∞the␈α∞next␈α∞line,␈α∞formfeed␈α
completes␈α
the␈α
page␈α
and␈α
cuts␈α
the␈α
paper,
␈↓ ↓H␈β
ε␈¬βbrick␈α
causes␈α
a␈α
command␈α
to␈α
be␈α
expected,␈α
and␈α
all␈α
other␈αcharacters␈αare␈αcopied␈αto␈αthe␈αoutput␈αfile␈αin␈αthe
␈↓ ↓H␈β
$␈¬βcurrently-selected␈αfont.␈α_The␈αeffect␈αis␈αthat␈αtext␈αis␈αaligned␈αagainst␈αthe␈αleft␈αmargin␈αunless␈αyou␈αexplicitly
␈↓ ↓H␈β
B␈¬βdo␈α
a␈α
column-select␈α
to␈α
cause␈α
it␈α
to␈α
be␈α
put␈α
elsewhere.
␈↓ α_␈β
`␈¬βThe␈α∞other␈α∞modes␈α∞you␈α∞can␈α∞get␈α∞into␈α
are␈α
justify,␈α
centerify/rightify,␈α
copy␈α
text␈α
into␈α
a␈α
macro␈α
body,
␈↓ ↓H␈β
}␈¬βevaluate␈α∂and␈α∂copy␈α∂text␈α∂into␈α∂an␈α∂overlay␈α∂body,␈α∂evaluate␈α∂and␈α∂copy␈α∂text␈α∂into␈α∂a␈α∞macro␈α∞argument␈α∞body,
␈↓ ↓H␈β∞≤␈¬βignore␈α
until␈α
linefeed,␈α
ignore␈α
until␈α
formfeed,␈αignore␈αnonprinting␈αcharacters␈αuntil␈αsemicolon,␈αand␈αparse␈αa
␈↓ ↓H␈β∞:␈¬βbrick␈α∞command.␈α≤Before␈α∞each␈α∞command␈α∞description␈α∞is␈α∞a␈α∞list␈α∞of␈α∞which␈α∞modes␈α∞you␈α
can␈α
be␈α
in␈α
when␈α
the
␈↓ ↓H␈β∞X␈¬βcommand␈αis␈αscanned.␈α_The␈αcomplete␈αlist␈αis␈α(U␈αJ␈αCR␈αo␈αA)␈αwhich␈αrefer␈αto␈αUnjustified␈α(normal␈αpass-as-is),
␈↓ ↓H␈β∞t␈¬βJustify,␈α∂Center/Rightify,␈α∂atomic␈α∂text␈α∂Overlay␈α∂(␈¬1␈¬∂o␈¬β␈α∂command)␈α∂and␈α∂Argument␈α∂to␈α∂a␈α∂macro␈α∂or␈α∂text␈α∂to␈α∂an
␈↓ ↓H␈β∂∀␈¬βalternate␈α
output␈α
file,␈α
respectively␈α
(in␈α
the␈αother␈αmodes,␈αnamely␈αdefine␈αthe␈αbody␈αof␈αa␈αmacro,␈αand␈αparse
␈↓ ↓H␈β∂2␈¬βvarious␈α
commands,␈α
the␈α
brick␈α
character␈α
is␈α
treated␈α
as␈α
text␈α
rather␈α
than␈α
as␈α
initiating␈α
a␈α
brick-command).
␈↓ 	~␈¬α 2␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	~␈¬α 3␈↓ βt␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ α_␈β↓f␈¬βMany␈α⊂places␈α⊂in␈α⊂this␈α⊂writeup␈α⊂it␈α⊂is␈α⊂necessary␈α⊂to␈α⊂show␈α⊂a␈α⊂string␈α∂of␈α∂text␈α∂that␈α∂looks␈α∂as␈α∂much␈α∂as
␈↓ ↓H␈βα∧␈¬βpossible␈αlike␈αwhat␈αthe␈αuser␈αwould␈αsee␈αwhen␈αediting␈αhis␈αsource␈αdocument.␈α⊗(E.g.,␈αin␈αexamples␈αof␈αhow␈αto
␈↓ ↓H␈βα"␈¬βdo␈αthings,␈αand␈αin␈αthe␈αsyntax␈αdescriptions␈αwhere␈αa␈αparticular␈αcharacter␈αoccurs␈αas␈αpart␈αof␈αthe␈αcommand.)
␈↓ ↓H␈βα@␈¬βFor␈α∂this␈α∂purpose␈α∂the␈α∂font␈α∞FIX25␈α∞is␈α∞used,␈α∞which␈α∞has␈α∞fixed-width␈α∞characters␈α∞that␈α∞look␈α∞very␈α∞much␈α∞like
␈↓ ↓H␈βα↑␈¬βthose␈α⊗on␈α⊗local␈α⊗keyboards␈α⊗and␈α⊗displays␈α⊗and␈α⊗on␈α⊗our␈α⊗line-printer.␈α*Here␈α∃is␈α∃the␈α∃complete␈α∃7-bit
␈↓ ↓H␈βα|␈¬βStanford-ASCII␈α
character␈α
set␈α
in␈α
this␈α
font:
␈↓ ↓H␈ββ~␈¬∂␈↓αβ∧¬επ λ␈	␈
␈␈
∞∂ ⊂⊃∩∪∀∃⊗↔ _→~≠≤≥≡∨  !"#$%&' ()*+,-./ 01234567 89:;<=>? 
␈↓ ↓H␈ββ8␈¬∂@ABCDEFG HIJKLMNO PQRSTUVW XYZ[\]↑← `abcdefg hijklmno pqrstuvw xyz{|␈⎇}␈␈
␈↓ ↓H␈ββV␈¬βThe␈α
following␈α
characters,␈αhowever,␈αdon't␈αlook␈αthe␈αsame␈αon␈αour␈αvarious␈αdevices,␈αand␈αusually␈αrepresent
␈↓ ↓H␈ββt␈¬βspecial␈α⊃functions␈α⊃rather␈α⊃than␈α⊃normal␈α⊂text,␈α⊂and␈α⊂hence␈α⊂will␈α⊂be␈α⊂represented␈α⊂in␈α⊂a␈α⊂special␈α⊂way␈α⊂in␈α⊂this
␈↓ ↓H␈β∧∩␈¬βwriteup:
␈↓ ↓H␈β∧0␈¬βOCTAL␈↓ αKFIX25␈↓ βNIN THIS WRITEUP␈↓ ¬TCOMMENTS
␈↓ ↓H␈β∧N␈¬β000␈¬∂␈↓ αK␈␈¬β␈↓ ¬Tnull, ignored if occurs in source document
␈↓ ↓H␈β∧l␈¬β011␈¬∂␈↓ αK␈	␈¬¬␈↓ βN<TB>␈¬β␈↓ ¬T(horizontal) tab
␈↓ ↓H␈β¬
␈¬β012␈¬∂␈↓ αK␈
␈¬¬␈↓ βN<LF>␈¬β␈↓ ¬Tline (feed)
␈↓ ↓H␈β¬(␈¬β013␈¬∂␈↓ αK␈¬¬␈↓ βN<VT>␈¬β␈↓ ¬Tvertical-tab
␈↓ ↓H␈β¬F␈¬β014␈¬∂␈↓ αK␈␈¬¬␈↓ βN<FF>␈¬β␈↓ ¬Tform (feed)
␈↓ ↓H␈β¬d␈¬β015␈¬∂␈↓ αK␈
␈¬¬␈↓ βN<CR>␈¬β␈↓ ¬T(carriage) return, always followed by ␈¬¬<LF>
␈↓ ↓H␈βεα␈¬β040␈¬∂␈↓ αK ␈¬¬␈↓ βN<SP>␈¬β␈↓ ¬Tspace (bar), usually shown as actual space
␈↓ ↓H␈βε ␈¬β177␈¬∂␈↓ αK␈␈␈¬β␈↓ ¬Trubout, doesn't occur in source-documents
␈↓ α_␈βε>␈¬βThe␈α
following␈α
additional␈α
BNF-style␈α
syntactical␈α
notation␈α
will␈α
be␈α
used␈α
in␈α
this␈α
paper:
␈↓ α_␈βε\␈¬¬<CH>␈¬β␈α
--␈α
any␈α
single␈α
ASCII␈α
character␈α
(representing␈α
data␈α
to␈α
be␈α
copied␈α
to␈α
output)
␈↓ α_␈βεz␈¬¬<N>␈¬β␈α∩--␈α⊃any␈α⊃one␈α⊃of␈α⊃these␈α⊃characters:␈¬∂␈α⊃0␈α⊃1␈α⊃2␈α⊃...␈α⊃9␈α⊃A␈α⊃B␈α⊃...␈α⊃F␈¬β␈α⊃(representing␈α⊃a␈α⊃logical␈α⊃font
␈↓ ↓H␈βπ_␈¬βnumber␈α
in␈α
IBM␈α
hexadecimal␈α
notation)
␈↓ α_␈βπ6␈¬¬<FONT>␈¬β␈α⊃--␈α⊃any␈α⊃font␈α⊃file␈α⊃name,␈α⊃if␈α⊃extension␈α⊂and␈α⊂[p,p]␈α⊂are␈α⊂omitted,␈α⊂default␈¬∂␈α⊂.FNT[XGP,SYS]␈¬β␈α⊂is
␈↓ ↓H␈βπT␈¬βassumed
␈↓ α_␈βπr␈¬¬<NAME>␈¬β␈α∂--␈α∂any␈α∂alphanumeric␈α∂string,␈α∂usually␈α∂required␈α∂not␈α∂to␈α∂be␈α∂the␈α∂null␈α∞string␈α∞(an␈α∞identifier,␈α∞a
␈↓ ↓H␈βλ⊂␈¬βname␈α
of␈α
an␈α
overlay,␈α
a␈α
macro,␈α
etc.)
␈↓ α_␈βλ.␈¬¬<OPEN>␈¬β␈α
--␈α
any␈α
legal␈α
open-nesting␈α
character,␈α
such␈α
as␈¬∂␈α
(␈α
[␈α
{␈α
<␈α
⊂␈¬β,␈α
or␈α
any␈α
legal␈αquoting␈αcharacter,
␈↓ ↓H␈βλL␈¬βsuch␈α
as␈¬∂␈α
"␈α
⊗␈α
↓␈α
/␈α
∂␈α
|
␈↓ α_␈βλj␈¬¬<CLOSE>␈¬β␈α∩--␈α∩the␈α∩matching␈α∩close-nesting␈α∩character,␈α∩such␈α∩as␈¬∂␈α∩)␈α∩]␈α∩}␈α∩>␈α∩⊃␈¬β,␈α∩or␈α∩the␈α⊃same␈α⊃quoting
␈↓ ↓H␈β	λ␈¬βcharacter,␈α
such␈α
as␈¬∂␈α
"␈α
⊗␈α
↓␈α
/␈α
∂␈α
|
␈↓ α_␈β	&␈¬¬<BODY>␈¬β␈α--␈αany␈αstring␈αof␈αtext␈αnot␈αcontaining␈αthe␈αquoting␈αcharacter,␈αor␈αcontaining␈αproperly-nested
␈↓ ↓H␈β	D␈¬βopen␈αand␈α
close␈α
nesting␈α
characters␈α
(note␈α
that␈α
all␈α
characters␈α
are␈α
treated␈α
as␈α
text␈α
except␈α
for␈α
the␈α
␈↓&particular␈↓)αβ
␈↓ ↓H␈β	b␈¬βquoting␈α
character␈α
or␈α
nesting␈α
pair␈α
selected␈α
in␈α
a␈α
particular␈α
instance,␈α
and␈α
special␈α
characters␈α
like␈α
comma
␈↓ ↓H␈β
␈¬βetc.␈α
which␈α
have␈α
special␈α
syntactical␈α
meaning)␈α
--␈α
see␈α
description␈α
in␈α
commands␈α
where␈α
used
␈↓ α_␈β
≡␈¬¬<FILNAM>␈¬β␈α
--␈α
any␈α
standard␈α
file␈α
name,␈α
such␈α
as␈¬∂␈α
SUDS.RPH[UP,DOC]␈¬β.
␈↓ ↓d␈β
U␈¬BASIC COMMANDS --- FONT SELECTION, JUSTIFY, CENTERIFY/RIGHTIFY, IGNORE TEXT
␈↓ α_␈β
x␈¬βThe␈α∂purpose␈α∂of␈α∂these␈α∞commands␈α∞is␈α∞to␈α∞select␈α∞the␈α∞style␈α∞and␈α∞size␈α∞of␈α∞printing␈α∞(for␈α∞example,␈α∞font
␈↓ ↓H␈β⊗␈¬∂BDI25␈¬β␈α⊂is␈α⊂BODONI-ITALIC,␈α⊂25/200␈α⊂inches␈α⊂high),␈α⊂to␈α⊂enter␈α∂and␈α∂exit␈α∂justify␈α∂mode␈α∂(in␈α∂which␈α∂the␈α∂text␈α∂is
␈↓ ↓H␈β4␈¬βmassaged␈α
so␈α
that␈α
each␈α
line␈α
is␈αas␈αfull␈αof␈αtext␈αas␈αwill␈αfit␈αand␈αextra␈αpartial-spaces␈αare␈αinserted␈αbetween
␈↓ ↓H␈βR␈¬βwords␈α
to␈α
make␈α
the␈α
margins␈α
line␈α
up␈α
exactly),␈α
to␈α
enter␈α
and␈α
exit␈α
rightify␈α
mode␈α
(in␈α
which␈α
text␈α
is␈αaligned
␈↓ ↓H␈βp␈¬βwith␈α⊃the␈α⊃right-margin␈α⊃but␈α⊃not␈α⊃modified␈α⊃in␈α⊃any␈α⊃other␈α⊃way),␈α⊂to␈α⊂enter␈α⊂and␈α⊂exit␈α⊂centerify␈α⊂mode␈α⊂(like
␈↓ ↓H␈β∞␈¬βpass-as-is␈αand␈αrightify␈αexcept␈αeach␈αline␈αis␈αcentered),␈αand␈αto␈αignore␈αportions␈αof␈αthe␈αinput␈αtext␈αthat␈αyou
␈↓ ↓H␈β,␈¬βdo␈α
not␈α
want␈α
processed.
␈↓ ¬o␈βh␈¬βFONT SELECTION
␈↓ ↓H␈β
∧␈¬1␈¬∂M␈¬¬<N><FONT>␈¬∂;␈¬β␈↓ β"(U)␈α⊂--␈α⊂causes␈α⊂the␈α⊂font␈α⊂to␈α⊂be␈α⊂loaded␈α⊂into␈α⊂pox␈α∂(and␈α∂later␈α∂into␈α∂the␈α∂system␈α∂XGP
␈↓ β"␈β
$␈¬βservice),␈αand␈αselects␈αit␈αnow␈α--␈αsee␈αnote␈α5␈αand␈αbug␈α2␈α--␈αthis␈αis␈αthe␈αcommand␈αthat
␈↓ β"␈β
B␈¬βsets␈αup␈αthe␈αcorrespondence␈αbetween␈αfonts␈αand␈αthe␈α
numbers␈α
you␈α
will␈α
use␈α
later␈α
to
␈↓ β"␈β
`␈¬βselect␈α∞them␈α∞--␈α∞type␈α∞to␈α∞the␈α∞system␈¬∂␈α
HELP␈α
FONT␈¬β␈α
to␈α
find␈α
out␈α
about␈α
fonts␈α
that␈α
are
␈↓ β"␈β
}␈¬βavailable␈αand␈αhow␈αto␈αperuse␈αthem␈α--␈αalways␈α
define␈α
one␈α
of␈α
your␈α
fonts␈α
with␈¬¬␈α
<N>␈¬β=␈¬∂0␈¬β,
␈↓ β"␈β∞≤␈¬βotherwise␈α∞the␈α∞system␈α∞(which␈α∞always␈α∞insists␈α∞on␈α∞having␈α∞font#␈¬∂0␈¬β␈α∞around␈α∞even␈α
if␈α
it
␈↓ β"␈β∞:␈¬βhas␈α
to␈α
make␈α
it␈α
up)␈α
will␈α
waste␈α
your␈α
time␈α
by␈α
loading␈αone␈αmore␈αfont␈αthan␈αyou␈αare
␈↓ β"␈β∞X␈¬βactually␈α
using.
␈↓ ↓H␈β∞t␈¬1␈¬∂F␈¬¬<N>␈¬β␈↓ β"(U␈αJ␈αCR␈αo)␈α--␈αselects␈αa␈αfont␈αwhich␈αhas␈αalready␈αbeen␈αloaded␈α--␈αall␈αtext␈αafter␈αthis
␈↓ β"␈β∂∩␈¬βcommand␈α
before␈α
the␈α
next␈¬␈α
1␈¬∂F␈¬β␈α
or␈¬␈α
1␈¬∂M␈¬β␈α
will␈α
be␈α
in␈α
font#␈¬¬<N>␈¬β.
␈↓ ↓H␈β∂0␈¬1␈¬∂f␈¬¬<N>␈¬β␈↓ β"(U␈αJ␈αCR)␈α--␈αselects␈αa␈αfont␈αfor␈αjust␈α
one␈α
character,␈α
then␈α
back␈α
to␈α
old␈α
font.␈α∀WARNING
␈↓ 	~␈¬α 3␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	~␈¬α 4␈↓ βt␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ β"␈β↓H␈¬β--␈α⊃Do␈α⊃not␈α⊃place␈α⊃the␈α⊃brick␈α⊃character␈α⊃immediately␈α⊃after␈α⊂this␈α⊂command␈α⊂because
␈↓ β"␈β↓f␈¬βcurrently␈α∞POX␈α∞will␈α∞quote␈α∞the␈α∞brick␈α∞character␈α
in␈α
the␈α
temporary␈α
font␈α
rather␈α
than
␈↓ β"␈βα∧␈¬βescaping␈αand␈αquoting␈αthe␈αfirst␈αcharacter␈αof␈αgenerated␈αtext␈αin␈αthe␈αtemporary␈αfont
␈↓ β"␈βα"␈¬β--␈αbecause␈αthis␈αis␈αregarded␈αas␈αa␈αbug␈α
it␈α
might␈α
be␈α
changed␈α
someday␈α
--␈α
currently␈α
it
␈↓ β"␈βα@␈¬βgenerates␈α
a␈α
warning␈α
message.
␈↓ ↓H␈βα↑␈¬β(See also push and pop font commands in the section on REGISTER COMMANDS.)
␈↓ εε␈ββ~␈¬βIGNORE TEXT
␈↓ ↓H␈ββ6␈¬1␈¬∂␈¬β (vert. tab)␈↓ β"(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
without␈α
changing␈α
mode,␈α
and␈α
without␈α
allowing␈α
EVERYPAGE␈αto␈αbe
␈↓ β"␈ββV␈¬βcalled␈α⊃here,␈α⊃ignore␈α⊃all␈α⊃input␈α⊃text␈α⊃up␈α⊃to␈α⊃and␈α⊃including␈α⊃the␈α⊂next␈α⊂linefeed,␈α⊂thus
␈↓ β"␈ββt␈¬βconcatenation␈α⊂of␈α∂input␈α∂lines␈α∂may␈α∂be␈α∂done␈α∂providing␈α∂that␈α∂the␈α∂line-break␈α∂is␈α∂not
␈↓ β"␈β∧∩␈¬βinside␈αsome␈αcommand␈αsyntax␈α--␈αif␈αyou␈αdo␈αthis␈αat␈αthe␈αbeginning␈α
of␈α
a␈α
line␈α
it␈α
is␈α
as␈α
if
␈↓ β"␈β∧0␈¬βthe␈α∞whole␈α∞line␈α∞weren't␈α∞there,␈α∞thus␈α
comment␈α
lines␈α
may␈α
be␈α
inserted␈α
anywhere␈α
in
␈↓ β"␈β∧N␈¬βthe␈α
source␈αfile␈αexcept␈αin␈αthe␈αmiddle␈αof␈αmacro-body-definitions␈αand␈αin␈αthe␈αmiddle
␈↓ β"␈β∧l␈¬βof␈α⊃the␈α⊃syntax␈α⊃of␈α⊃brick-commands␈α⊃--␈α⊃this␈α⊃command␈α⊃is␈α⊃especially␈α⊃useful␈α⊃inside
␈↓ β"␈β¬
␈¬βjustify␈α∞or␈α∞centerify/rightify␈α∞mode␈α∞to␈α∞create␈α∞a␈α∞very␈α∞long␈α∞word␈α
or␈α
a␈α
complicated
␈↓ β"␈β¬(␈¬βformula␈αor␈αa␈αlong␈αsequence␈αof␈αarithmetic␈αoperations␈αwithout␈αleaving␈αthe␈αmode.␈α∃It
␈↓ β"␈β¬F␈¬βis␈αalso␈αuseful␈αin␈αPASS-AS-IS␈αto␈αavoid␈αcalling␈αEVERYPAGE␈αjust␈αthen,␈αand␈αin␈α
macros
␈↓ β"␈β¬d␈¬βthat␈α
are␈α
likely␈α
to␈α
be␈α
called␈α
from␈α
almost␈α
anywhere.
␈↓ ↓H␈βε␈¬1␈¬∂N␈¬β␈↓ β"(U␈αJ␈αCR␈αo␈αA)␈α--␈αsame␈αas␈¬␈α1␈¬∂␈¬β␈αfor␈αpeople␈αwho␈αdon't␈αlike␈αvertical␈αtabs␈αin␈αtheir␈αtext
␈↓ β"␈βε ␈¬βfiles.␈α→(They␈αprint␈αout␈αas␈¬¬␈α<LF><LF><LF><LF>␈¬β␈αon␈αTTY's,␈αdial-up␈αlines␈αand␈αthe␈αLPT,␈αas
␈↓ β"␈βε>␈¬β"␈¬∂␈¬β"␈α∞on␈α∞local␈α∞DPY's␈α∞and␈α∞the␈α∞XGP,␈α∞as␈α∞<erase-to-end-of-screen>␈α∞on␈α∞some␈α
Beehive
␈↓ β"␈βε\␈¬βterminals,␈α
and␈α
who-knows-what␈α
on␈α
other␈α
display␈α
terminals␈α
on␈α
the␈α
Arpanet.)
␈↓ ↓H␈βεx␈¬1␈¬∂,␈¬β (comma)␈↓ β"(U␈αJ␈αCR␈α
o␈α
A)␈α
--␈α
same␈α
as␈¬␈α
1␈¬∂␈¬β␈α
except␈α
it␈α
ignores␈α
through␈α
next␈α
form-feed␈α
(page␈α
mark)
␈↓ β"␈βπ_␈¬βthereby␈αconcatenating␈αtwo␈αpages␈αinto␈αone␈α--␈αif␈αyou␈αdo␈αthis␈αat␈αthe␈αbeginning␈αof␈α
a
␈↓ β"␈βπ6␈¬βpage,␈α
it␈α
is␈α
as␈α
if␈α
the␈α
whole␈α
page␈α
weren't␈α
there.
␈↓ ↓H␈βπR␈¬1␈¬∂ ␈¬β (space)␈↓ β"(U␈α∂J␈α∞CR␈α∞o␈α∞A)␈α∞--␈α∞without␈α∞changing␈α∞mode,␈α∞ignore␈α∞all␈α∞input␈α∞text␈α∞(only␈α∞spaces␈α∞and
␈↓ β"␈βπr␈¬βtabs␈αallowed)␈αup␈αto␈αand␈αincluding␈αthe␈αnext␈αsemicolon.␈α⊗This␈α
is␈α
useful␈α
for␈α
indenting
␈↓ β"␈βλ⊂␈¬βinput-text␈αwithout␈αgenerating␈αspaces␈αor␈αtabs␈αin␈αthe␈αoutput.␈α⊗(Proposed␈αadditional
␈↓ β"␈βλ.␈¬βfeature␈α∃(not␈α∃yet␈α∃implemented,␈α∃as␈α∃of␈α∀1976.NOV.26),␈α∀if␈α∀spaces␈α∀and␈α∀tabs␈α∀are
␈↓ β"␈βλL␈¬βterminated␈α∪by␈α∪a␈α∩printing␈α∩character␈α∩other␈α∩than␈α∩semicolon,␈α∩that␈α∩character␈α∩will
␈↓ β"␈βλj␈¬βterminate␈α
this␈α
mode␈α
but␈α
will␈α
be␈α
unread␈α
before␈α
returning␈α
to␈α
previous␈α
mode.)
␈↓ ↓H␈β	ε␈¬1␈¬β␈↓ αH (tab)␈↓ β"(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
same␈α
as␈¬␈α
1␈¬β␈α
(space).
␈↓ ∧G␈β	D␈¬βENTER SPECIAL-FORMATTING MODES (J CR)
␈↓ ↓H␈β	`␈¬1␈¬∂J␈¬β␈↓ β"(U)␈α--␈αbegins␈αfull-justify␈αmode,␈αsee␈αtable␈αbelow␈αfor␈αdetails␈αon␈αthis␈αmode␈αand␈αhow
␈↓ β"␈β
␈¬βto␈α⊃get␈α⊃out␈α⊃of␈α⊃it.␈α"--␈α⊃Be␈α⊃aware␈α⊃that,␈α⊂because␈α⊂font␈α⊂selects␈α⊂count␈α⊂as␈α⊂text␈α⊂and
␈↓ β"␈β
≡␈¬βtherefore␈α∂must␈α∂be␈α∂inside␈α∂words,␈α∂and␈α∂because␈α∂tabs␈α∂cannot␈α∂be␈α∂in␈α∂the␈α∞middle␈α∞of
␈↓ β"␈β
<␈¬βjustified␈α
lines␈α
of␈α
text,␈α
the␈α
following␈α
input␈α
syntax␈α
is␈α
illegal␈α
and␈α
will␈α
generate␈αthe
␈↓ β"␈β
Z␈¬β"␈¬∂illegal␈α
tab␈α
in␈α
justify␈¬β"␈α
error␈α
message:
␈↓ βr␈β
v␈¬1␈¬∂J␈¬1␈¬∂F1␈¬¬<TB>␈¬∂This␈α
is␈α
a␈α
paragraph␈α
of␈α
text␈¬β...␈¬1␈¬∂.
␈↓ ↓H␈β⊗␈¬β  ␈↓ β"To␈α
avoid␈α
this␈α
problem,␈α
I␈α
suggest␈α
you␈α
do␈α
it␈α
this␈α
way␈α
instead:
␈↓ βr␈β2␈¬1␈¬∂F1␈¬1␈¬∂J␈¬¬<TB>␈¬∂This␈α
is␈α
a␈α
paragraph␈α
of␈α
text␈¬β...␈¬1␈¬∂.
␈↓ ↓H␈βP␈¬1␈¬∂R␈¬β␈↓ β"(U)␈α⊃--␈α⊃begins␈α⊃single-line␈α⊂align-against-right-margin␈α⊂mode,␈α⊂see␈α⊂table␈α⊂below␈α⊂for
␈↓ β"␈βp␈¬βdetails␈α
on␈α
this␈α
mode␈α
and␈α
how␈α
to␈α
get␈α
out␈α
of␈α
it.
␈↓ ↓H␈β␈¬1␈¬∂C␈¬β␈↓ β"(U)␈α--␈αbegins␈αsingle-line␈αcenter-the-line␈αmode,␈αsee␈αtable␈αbelow␈α
for␈α
details␈α
on␈α
this
␈↓ β"␈β,␈¬βmode␈α
and␈α
how␈α
to␈α
get␈α
out␈α
of␈α
it.
␈↓ ∧	␈βh␈¬βEXIT SPECIAL-FORMATTING MODES, ETC. (SEE TABLE)
␈↓ ↓H␈β
∧␈¬1␈¬∂.␈¬β (period)
␈↓ ↓H␈β
"␈¬1␈¬∂;␈¬β (semicolon)␈↓ β"These␈αtwo␈αcommands␈αwill␈α
get␈α
out␈α
of␈α
some␈α
modes␈α
back␈α
to␈α
pass-as-is␈α
mode,␈α
and␈α
do
␈↓ β"␈β
B␈¬βother␈αthings␈αlike␈αignoring␈αtext␈αand␈αsuppressing␈α<CR><LF>␈α--␈αsee␈αtable␈αbelow␈αfor
␈↓ β"␈β
`␈¬βdetails␈α
of␈α
what␈α
each␈α
command␈α
does␈α
inside␈α
each␈α
of␈α
the␈α
modes.
␈∧∞_α"α
Z␈∧∞_|xα␈∧∞_α"xα␈↓ α,␈β∞~␈¬1␈¬∂.␈¬␈↓ ¬n1␈¬∂;␈¬¬␈↓ λ.<CR><LF>␈↓  <TB>␈¬β or ␈¬¬<SP>
␈∧∞6(αT␈∧∞6(Zα␈↓ 2␈β∞8␈¬βPass-as-is␈↓ α,(not supported)␈↓ ¬ndo ␈¬1␈¬∂N␈¬β, #4␈¬¬␈↓ λ.<CR><LF>␈¬β, #4␈↓  copy to output
␈↓ 2␈β∞V␈¬βJustify␈↓ α,finish, ␈¬¬<CR><LF>␈¬β, do ␈¬1␈¬∂N␈¬β␈↓ ¬nillegal␈↓ λ.(see #1)␈↓  (see #2)
␈↓ 2␈β∞t␈¬βCenterify/Rightify␈↓ α,finish, pass-as-is␈↓ ¬nfinish, do ␈¬1␈¬∂N␈¬β, pass-as-is␈↓ λ.finish, ␈¬¬<CR><LF>␈¬β, pass-as-is␈↓  (see #3)
␈∧∂⊂(αT␈↓ ↓H␈β∂0␈¬βfinish␈α--␈αGet␈αout␈αof␈αspecial␈αmode␈α(don't␈αemit␈¬¬␈α<CR><LF>␈¬β␈αyet).␈α⊗To␈αprotect␈αusers␈αwho␈αput␈αtext␈αafter␈¬␈α1␈¬∂.␈¬β␈αat
␈↓ 	~␈¬α 4␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	~␈¬α 5␈↓ βt␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬βthe␈αend␈α
of␈α
justified␈α
text,␈α
the␈¬␈α
1␈¬∂N␈¬β␈α
shown␈α
in␈α
the␈α
table␈α
above␈α
prints␈α
any␈α
flushed-text␈α
on␈α
your␈α
terminal␈α
as␈α
a
␈↓ ↓H␈β↓f␈¬βsort-of␈α
error␈α
message.␈α∀When␈α
leaving␈α
centerify/rightify␈α
mode␈α
with␈α
the␈¬␈α
1␈¬∂.␈¬β␈α
command,␈α
the␈α
table␈α
shows␈α
no
␈↓ ↓H␈βα∧␈¬1␈¬∂N␈¬β␈αcommand␈αand␈αno␈¬¬␈α<CR><LF>␈¬β␈αinserted,␈αso␈αthat␈αany␈αfollowing␈αtext␈αon␈αthe␈αsame␈αinput␈αline␈αwill␈αoccur␈αon
␈↓ ↓H␈βα"␈¬βthe␈α
same␈α
line␈α
of␈α
output.␈α∀Similarily␈α
after␈α
using␈¬␈α
1␈¬∂;␈¬β␈α
to␈α
leave␈α
centerify/rightify␈α
mode,␈α
text␈α
on␈α
the␈α
␈↓&next␈↓)αα␈α
line
␈↓ ↓H␈βαB␈¬βof␈α
input␈α
will␈α
overprint␈α
on␈α
the␈α
␈↓&same␈↓)αα␈α
line␈α
of␈α
output.
␈↓ ↓H␈βα}␈¬β#1␈α
--␈α
A␈α
blank␈α
line␈α
(i.e.,␈¬¬␈α
<CR><LF>␈¬β␈α
immediately␈α
followed␈α
by␈¬¬␈α
<CR><LF>␈¬β)␈α
causes␈α
the␈α
previous␈α
paragraph␈α(if
␈↓ ↓H␈ββ≤␈¬βany␈αis␈αin␈αprogress)␈αto␈αbe␈αfinished,␈αthen␈αa␈αblank␈αline␈αis␈αemitted.␈α⊗As␈αmany␈αblank␈αlines␈αas␈αappear␈α
in␈α
input
␈↓ ↓H␈ββ:␈¬βwill␈α∩appear␈α∩in␈α∩output.␈α"The␈α⊃next␈α⊃nonblank␈α⊃line␈α⊃begins␈α⊃a␈α⊃new␈α⊃paragraph.␈α"A␈α⊃single␈¬¬␈α⊃<CR><LF>␈¬β␈α⊃in␈α⊃a
␈↓ ↓H␈ββX␈¬βparagraph␈α
is␈α
merely␈α
a␈α
break␈α
between␈α
words.
␈↓ ↓H␈β∧∀␈¬β#2␈α--␈αOne␈αor␈αmore␈α
tabs␈α
at␈α
the␈α
beginning␈α
of␈α
a␈α
line␈α
causes␈α
the␈α
previous␈α
paragraph␈α
(if␈α
any␈α
is␈α
in␈α
progress)
␈↓ ↓H␈β∧2␈¬βto␈α⊂be␈α⊂finished,␈α⊂then␈α⊂a␈α⊂new␈α⊂paragraph␈α⊂is␈α⊂started␈α⊂with␈α⊂its␈α⊂first␈α⊂line␈α∂indented␈α∂by␈α∂the␈α∂tab(s).␈α≡Tab(s)
␈↓ ↓H␈β∧P␈¬βelsewhere␈αare␈αillegal.␈α⊗NOTE␈α--␈αThere␈αis␈αcurrently␈αno␈αway␈αto␈αindent␈αby␈αany␈αamount␈αother␈αthan␈α
a␈α
whole
␈↓ ↓H␈β∧n␈¬βnumber␈α
of␈α
tabs,␈α
nor␈α
is␈α
there␈α
any␈α
way␈α
to␈α
outdent␈α
by␈α
any␈α
amount␈α
at␈α
all.
␈↓ ↓H␈β¬*␈¬β#3␈α--␈αTab(s)␈α
and/or␈α
space(s)␈α
at␈α
the␈α
beginning␈α
are␈α
ignored␈α
(in␈α
centerify␈α
this␈α
makes␈α
things␈α
look␈α
pretty,␈α
in
␈↓ ↓H␈β¬H␈¬βrightify␈α∂it␈α∞doesn't␈α∞make␈α∞any␈α∞difference).␈α≤Elsewhere␈α∞tabs␈α∞are␈α∞illegal␈α∞and␈α∞spaces␈α∞are␈α∞treated␈α∞as␈α∞text.
␈↓ ↓H␈β¬f␈¬β(The␈α
feature␈αof␈αignoring␈αtabs␈αand␈αspaces␈αat␈αthe␈αend␈αis␈αcurrently␈αunder␈αconsideration␈αso␈αdon't␈αrely␈αon
␈↓ ↓H␈βε∧␈¬βspaces␈α
being␈α
treated␈α
as␈α
text␈α
there.)
␈↓ ↓H␈βε@␈¬β#4␈α--␈αAfter␈αperforming␈αthe␈αindicated␈αoperation,␈αif␈αthe␈αEVERYPAGE␈αfeature␈αhas␈αbeen␈αrequested␈αfor␈αthis
␈↓ ↓H␈βε↑␈¬βpage␈α∞(i.e.,␈α∞if␈α∞VEREVE␈α∞was␈α∞TRUE␈α∞at␈α∞the␈α∞end␈α∞of␈α
the␈α
preceeding␈α
page)␈α
but␈α
not␈α
yet␈α
performed,␈α
then␈α
the
␈↓ ↓H␈βε|␈¬βbody␈αof␈αthe␈αmacro␈αEVERYPAGE␈αis␈αpatched␈αinto␈αthe␈αinput␈αstream␈αat␈αthis␈αpoint.␈α⊗This,␈αof␈αcourse,␈αis␈αlikely
␈↓ ↓H␈βπ~␈¬βto␈αclobber␈α
any␈α
registers␈α
(including␈α
the␈α
ac)␈α
that␈α
are␈α
used␈α
by␈α
the␈α
EVERYPAGE␈α
macro,␈α
unless␈α
you␈α
carefully
␈↓ ↓H␈βπ8␈¬βwrite␈α
your␈α
EVERYPAGE␈α
macro␈α
so␈α
that␈α
it␈α
saves␈α
and␈α
restores␈α
the␈α
ac␈α
and␈α
any␈α
other␈α
registers␈α
it␈α
uses.
␈↓ ¬λ␈βπt␈¬βREDEFINE THE BRICK CHARACTER
␈↓ ↓H␈βλ⊂␈¬1␈¬∂|␈¬¬<CH>␈¬β␈↓ β"(U␈αJ␈αCR␈αo␈αA)␈α--␈αchanges␈αthe␈αbrick␈αcharacter␈αto␈¬¬␈α<CH>␈¬β␈α--␈αI␈αdon't␈αguarantee␈αparsing
␈↓ β"␈βλ0␈¬βwill␈α∂mesh␈α∂with␈α∂this␈α∂in␈α∂a␈α∂reasonable␈α∂way␈α∂if␈α∂you␈α∂do␈α∂this␈α∂deep␈α∂inside␈α∂something
␈↓ β"␈βλN␈¬βcomplicated␈αlike␈αjustify,␈αsurrounded␈αnearby␈αby␈αthings␈αthat␈αdepend␈αon␈αthe␈αescape
␈↓ β"␈βλj␈¬βcharacter␈α∂being␈α∞what␈α∞you'd␈α∞expect␈α∞--␈α∞note␈α∞that␈α∞if␈α∞you␈α∞do␈¬␈α∞1␈¬∂||␈¬β␈α∞you␈α∞can't␈α∞later
␈↓ β"␈β	
␈¬βchange␈α∞back␈α∞because␈α∞then␈α∞as␈α∞long␈α∞as␈α∞"␈¬∂|␈¬β"␈α∞is␈α∞the␈α
escape␈α
character,␈α
"␈¬∂||␈¬β"␈α
will␈α
be
␈↓ β"␈β	&␈¬βparsed␈α∀as␈α∀"␈¬11␈¬β"␈α∀rather␈α∀than␈α∀as␈α∪"␈¬1␈¬∂|␈¬β..."␈α∪(see␈α∪the␈¬␈α∪11␈¬β␈α∪and␈¬␈α∪1␈¬∂"␈¬¬<CH>␈¬β␈α∪commands
␈↓ β"␈β	D␈¬βdescribed␈α∩later␈α∩in␈α∩this␈α⊃manual)␈α⊃unless,␈α⊃of␈α⊃course,␈α⊃you␈α⊃have␈α⊃disabled␈α⊃the␈¬␈α⊃11
␈↓ β"␈β	b␈¬βcommand␈α
by␈α
means␈α
of␈¬␈α
1␈¬∂⊂'1000001;␈¬β␈α
or␈α
equivalent.
␈↓ ¬	␈β
≠␈¬Examples of basic commands
␈↓ α_␈β
>␈¬βIn this writeup I loaded the following fonts (␈¬∂$␈¬β is the escape character):
␈↓ ↓H␈β
\␈¬∂$M0NGR30;$M1NGR30;$M2BDI25;$M3NGR25;$M4NGB25[1,REM];$M5NGR20[1,REM];$M6XMAS25;
␈↓ ↓H␈β
z␈¬∂$MFFIX25;$MC75224X.FNT[1,REM];
␈↓ ↓H␈β_␈¬β(Note␈αthat␈αNGR30␈αis␈αnot␈αreally␈αloaded␈αtwice␈αbecause␈αwhen␈αPOX␈αsees␈αthe␈¬∂␈α$M1␈¬β...␈αcommand␈αit␈αnotices␈αthat
␈↓ ↓H␈β6␈¬∂NGR30␈¬β␈α∂is␈α∂already␈α∂loaded␈α∂as␈α∂font#␈¬∂0␈¬β␈α∂and␈α∂POX␈α∂then␈α∂merely␈α∂maps␈α∂user␈α∂font␈α∂number␈¬∂␈α∂1␈¬β␈α∂to␈α∂system␈α∂font
␈↓ ↓H␈βT␈¬βnumber␈¬∂␈α
0␈¬β␈α
by␈α
means␈α
of␈α
the␈α
font␈α
mapping␈α
table␈α
in␈α
POX.)
␈↓ α_␈βr␈¬βLater␈α
in␈α
this␈α
writeup,␈α
in␈α
a␈α
required-source␈α
file,␈α
the␈α
following␈α
load-font␈α
commands␈α
appear:
␈↓ ↓H␈β⊂␈¬∂\M0FIX25;\M1NGB25[1,REM];\M2NGR20[1,REM];\M3BDI25;
␈↓ ↓H␈β.␈¬∂\M9GRK30;\MEGRKL50;\MF75224X.FNT[1,REM];
␈↓ ↓H␈βL␈¬βOnly␈αthe␈αfonts␈α
not␈α
previously␈α
loaded␈α
are␈α
loaded␈α
now.␈α∀The␈α
rest␈α
are␈α
merely␈α
mapped␈α
to␈α
their␈α
system␈α
font
␈↓ ↓H␈βj␈¬βnumbers␈α
(assigned␈α
when␈α
first␈α
loaded)␈α
from␈α
their␈α
new␈α
user␈α
font␈α
numbers.
␈↓ α_␈β
ε␈¬βThis␈αparagraph␈αand␈αall␈αother␈αjustified␈αtext␈αat␈αnormal␈αmargins␈αwas␈αdone␈αby␈α
using␈¬␈α
1␈¬∂J␈¬β␈α
to␈α
enter␈α
and
␈↓ ↓H␈β
$␈¬1␈¬∂.␈¬β␈α
to␈αexit␈αjustify␈αmode.␈α_(See␈αthe␈αsection␈αon␈αREGISTERS␈αfor␈αhow␈αindented␈αparagraphs␈αof␈αdescriptions
␈↓ ↓H␈β
B␈¬βafter␈αeach␈αcommand␈αsyntax␈αwas␈αdone␈αby␈αthe␈¬␈α1␈¬∂j␈¬β␈αcommand.)␈α_The␈αtitle␈αon␈αthe␈αfirst␈αpage␈αis␈αin␈αcenterify
␈↓ ↓H␈β
`␈¬βmode,␈αusing␈¬␈α1␈¬∂C␈¬β␈αto␈αenter␈αand␈¬¬␈α<CR><LF>␈¬β␈αto␈αexit.␈α_(The␈αtitles␈αon␈αother␈αpages␈αare␈αdone␈αby␈αoverlays,␈αwhich
␈↓ ↓H␈β∞␈¬βare␈α
also␈α
explained␈α
later␈α
in␈α
this␈α
writeup.)
␈↓ α_␈β∞<␈¬βHere␈α
are␈α
some␈α
further␈α
examples␈α
of␈α
the␈α
above␈α
commands:
␈↓ ↓H␈β∞Z␈¬∂$F1This line $F2is in $F3several fonts.  $f1Temp $f1font $f1selects
␈↓ ↓H␈β∞s␈¬This line ␈¬αis in ␈¬βseveral fonts.  ␈¬T␈¬βemp ␈¬f␈¬βont ␈¬s␈¬βelects
␈↓ ↓H␈β∂4␈¬∂$F5$CThis line has antidisestablishmentarianismfoogarplylongwordthatis$N
␈↓ 	~␈¬α 5␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	~␈¬α 6␈↓ βt␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬∂allinthesinglewordininthemiddleofthislineofcenteredtext as you see.
␈↓ ↓e␈β↓j␈¬¬This line has antidisestablishmentarianismfoogarplylongwordthatisallinthesinglewordininthemiddleofthislineofcenteredtext as you see.
␈↓ ↓H␈βα"␈¬∂$F3Hello there.$RWell, hello to you too$;
␈↓ ↓H␈βα@␈¬∂$C(Middle on same line)
␈↓ ↓H␈βα↑␈¬βHello there.␈↓ 	ZWell, hello to you too␈↓ ¬S(Middle on same line)
␈↓ ↓H␈ββ~␈¬∂$F3Left part $f1$CThis didn't get centered, see next example for fix
␈↓ ↓H␈ββ3␈¬βLeft part ␈¬$␈¬βCThis didn't get centered, see next example for fix
␈↓ ↓H␈ββt␈¬∂$F3Left part $C$f1This got centered ok.
␈↓ ↓H␈β∧
␈¬βLeft part ␈¬␈↓ ¬PT␈¬βhis got centered ok.
␈↓ ↓H␈β∧N␈¬∂$F3For the same reason $f1$'14; doesn't do what you would want.
␈↓ ↓H␈β∧g␈¬βFor the same reason ␈¬$␈¬β'14; doesn't do what you would want.
␈↓ ↓H␈β¬(␈¬∂$F3But in this case some commands discussed later, $#$F1$'14;$G, do the trick.
␈↓ ↓H␈β¬A␈¬βBut in this case some commands discussed later, ␈¬␈␈¬β, do the trick.
␈↓ ε∧␈β¬⎇␈¬SIMULATOR
␈↓ α_␈βε ␈¬βThe␈α"linefeed␈αsimulator"␈αis␈αa␈αpost-processor␈αfor␈αall␈αtext␈αemitted␈αby␈αthe␈αordinary␈αmode␈αscanners
␈↓ ↓H␈βε<␈¬β(U␈α
J␈α
or␈α
CR).␈α~To␈α
enable␈α
the␈α
linefeed␈α
simulator,␈α
use␈α
the␈¬␈α
1␈¬∂⊂'4;␈¬β␈α
command␈α
(see␈α
the␈α
section␈α
on␈αenabling
␈↓ ↓H␈βε\␈¬βspecial␈α
features).
␈↓ α_␈βεz␈¬βThe␈α⊂original␈α⊂function␈α⊂of␈α⊂the␈α⊂simulator␈α⊂was␈α∂to␈α∂simulate␈α∂the␈α∂the␈α∂way␈α∂XGPSER␈α∂(the␈α∂part␈α∂of␈α∂the
␈↓ ↓H␈βπ_␈¬βsystem␈α∂that␈α∂services␈α∂the␈α∂XGP,␈α∂in␈α∂particular␈α∂"XGP␈α∂character␈α∂mode"␈α∂as␈α∂described␈α∂in␈α∂the␈α∞UUO␈α∞manual)
␈↓ ↓H␈βπ6␈¬βwould␈α∪handle␈α∪linefeeds␈α∪emitted␈α∪by␈α∪POX,␈α∪i.e.,␈α∪the␈α∪simulator␈α∪replaces␈α∩each␈α∩linefeed␈α∩by␈α∩an␈α∩explicit
␈↓ ↓H␈βπT␈¬βvertical-position-select␈α∞that␈α∞is␈α∞equivalent␈α∞to␈α∞what␈α∞XGPSER␈α
would␈α
have␈α
done␈α
if␈α
the␈α
linefeed␈α
had␈α
been
␈↓ ↓H␈βπr␈¬βemitted␈α∂directly␈α∂into␈α∂the␈α∂output␈α∂file.␈α≡That␈α∂makes␈α∂it␈α∂possible␈α∂for␈α∂POX␈α∂to␈α∂sort␈α∞vectors␈α∞and␈α∞text␈α∞into
␈↓ ↓H␈βλ⊂␈¬βcorrect␈α∂sequence␈α∂according␈α∂to␈α∂vertical␈α∂position␈α∂on␈α∂the␈α∂page␈α∂before␈α∞outputting␈α∞them␈α∞(XGP␈α∞character
␈↓ ↓H␈βλ.␈¬βmode␈αrequires␈αthis),␈αto␈αknow␈αwhen␈αbottom␈αof␈αpage␈αis␈αreached␈αand␈αa␈αnew␈αpage␈αis␈αstarted␈α(so␈αthat␈αPOX
␈↓ ↓H␈βλL␈¬βcan␈αkeep␈αtrack␈αof␈αpage␈αnumbers␈αcorrectly,␈αor␈αwarn␈αthe␈αuser␈αif␈αa␈αpage␈αbecomes␈αfull␈αunexpectedly),␈αand
␈↓ ↓H␈βλj␈¬βso␈α⊃that␈α⊃uniform␈α⊃baseline␈α⊃spacing␈α⊂can␈α⊂be␈α⊂obtained␈α⊂regardless␈α⊂of␈α⊂varying␈α⊂sizes␈α⊂of␈α⊂superscripts␈α⊂and
␈↓ ↓H␈β	λ␈¬βsubscripts.␈α2Later␈α→the␈α→simulator␈α→was␈α→enhanced␈α→to␈α→optimize␈α_font-selects,␈α_column-adjusts,␈α_and
␈↓ ↓H␈β	&␈¬βbaseline-adjusts,␈αi.e.,␈αto␈αeliminate␈αall␈αredundant␈αoperations,␈αand␈αto␈αimplement␈αgiant-baseline-offset,␈αi.e.,
␈↓ ↓H␈β	B␈¬βwhen␈αa␈¬␈α1␈¬∂↑␈¬β␈αor␈¬␈α1␈¬∂↓␈¬β␈αor␈¬␈α1␈¬∂→,␈¬β␈αcommand␈αis␈αgiven␈αwith␈αan␈αargument␈αout␈αof␈αthe␈αrange␈αof␈α-100␈αto␈α+77␈α(octal)
␈↓ ↓H␈β	b␈¬βthe␈α
baseline-specification␈α
is␈α
expanded␈α
into␈α
enough␈αrelative-baseline-offsets␈αto␈αaccomplish␈αthe␈αdesired
␈↓ ↓H␈β	}␈¬βeffect,␈α
and␈α
(1977␈α
Jan)␈α
to␈α
support␈α
overlays-qua-characters␈α
via␈α
the␈¬␈α
1␈¬∂H␈¬β␈α
command.
␈↓ α_␈β
≡␈¬βMany␈α
of␈α
the␈α
commands␈α
below␈α
require␈α
the␈α
simulator␈α
if␈α
they␈α
are␈α
to␈α
work␈α
in␈α
full␈α
generality␈α
or␈α
at␈α
all.
␈↓ ελ␈βπ␈¬REGISTERS
␈↓ α_␈β≥␈¬βThere␈α∩are␈α∩2␈↓#
7␈↓#=128␈α∩registers␈α∩which␈α∩can␈α∩hold␈α∩any␈α∩36-bit␈α∩integer␈α∩(PDP-10␈α∩two's␈α∩complement
␈↓ ↓H␈βH␈¬βformat),␈α
such␈α
as␈α
the␈α
horizontal␈α
coordinate␈α
of␈α
some␈α
column␈α
on␈α
the␈α
page.␈α_(␈¬αNote␈¬β␈α--␈αall␈αlocations␈αon␈αthe
␈↓ ↓H␈βf␈¬βXGP,␈αwhether␈αrelative␈αor␈αabsolute,␈αare␈αmeasured␈αin␈αXGP␈αpixels␈αwhich␈αare␈αabout␈α5␈α
mils,␈α
i.e.␈α∀1/200␈α
inch)
␈↓ ↓H␈β∧␈¬βThe␈α∞idea␈α∞is␈α∞to␈α∞allow␈α∞specification␈α∞of␈α
multi-column␈α
tables␈α
and␈¬α␈α
superscripts-above-subscripts␈¬β␈α
in␈α
an␈α
easy
␈↓ ↓H␈β"␈¬βand␈α
flexible␈α
way,␈α
including␈α
automatic␈α
allocation␈α
of␈α
such␈α
things␈α
as␈α
"␈¬α1/5␈α
of␈α
a␈α
page␈¬β"␈α
by␈α
simple␈α
division,
␈↓ ↓H␈β@␈¬βand␈α⊂to␈α∂perform␈α∂any␈α∂other␈α∂integer␈α∂arithmetic␈α∂or␈α∂logic␈α∂that␈α∂might␈α∂be␈α∂useful␈α∂during␈α∂compilations␈α∂of␈α∂a
␈↓ ↓H␈β↑␈¬βdocument.␈α≡Each␈α∂register␈α∂is␈α∞specified␈α∞by␈α∞an␈α∞ASCII␈α∞character.␈α≤(␈¬αNote␈¬β␈α∞--␈α∞in␈α∞general,␈α∞POX␈α∞distinguishes
␈↓ ↓H␈β|␈¬βbetween␈α⊂upper-␈α⊂and␈α⊂lower-case␈α⊂characters␈α⊂--␈α⊂for␈α⊂example,␈α⊂"␈¬∂k␈¬β"␈α⊂and␈α⊂"␈¬∂K␈¬β"␈α⊂do␈α⊂not␈α∂refer␈α∂to␈α∂the␈α∂same
␈↓ ↓H␈β
~␈¬βregister.)␈α⊗One␈αof␈αthe␈αnon-alphanumeric␈αregisters␈α(currently␈αregister␈¬∂␈α∀␈¬β)␈α
is␈α
called␈α
the␈α
"␈¬αaccumulator␈¬β"␈α
and
␈↓ ↓H␈β
8␈¬βis␈α∞the␈α∞intermediate␈α∞storage␈α∞for␈α
most␈α
sequences␈α
of␈α
arithmetic␈α
calculation.␈α~Other␈α
special␈α
registers␈α
are
␈↓ ↓H␈β
V␈¬βlisted␈α
below,␈α
as␈α
well␈α
as␈α
characters␈α
that␈α
don't␈α
specify␈α
registers␈α
at␈α
all.␈α→(␈¬αWarning␈¬β␈α--␈αnon-alphanumeric
␈↓ ↓H␈β
t␈¬βregister␈α∂names␈α∂are␈α∞liable␈α∞to␈α∞be␈α∞changed␈α∞to␈α∞special␈α∞arguments␈α∞like␈α∞"."␈α∞and␈α∞","␈α∞without␈α∞much␈α∞warning.
␈↓ ↓H␈β∞∩␈¬βTherefore,␈α
please␈α
use␈α
only␈α
alphanumeric␈α
register␈α
names␈α
in␈α
files␈α
that␈α
you␈α
will␈α
be␈α
unwilling␈α
to␈α
maintain.)
␈↓ ↓H␈β∞I␈¬Meaning of argument(s) to the commands:
␈↓ ↓H␈β∞l␈¬¬<CH>␈¬β␈↓ β"If␈α
not␈α
mentioned␈α
below,␈α
contents␈α
of␈α
register␈α
corresponding␈α
to␈α
that␈α
character.
␈↓ ↓H␈β∂
␈¬∂. ␈¬β(period)   ␈↓ β"Current␈α⊂column␈α∂location␈α∂(increases␈α∂as␈α∂you␈α∂move␈α∂to␈α∂the␈α∂right)␈α∂is␈α∂stored␈α∂in␈α∂the
␈↓ β"␈β∂(␈¬βright␈α⊂half␈α⊂of␈α⊂this␈α⊂register.␈α∨Every␈α∂time␈α∂a␈α∂character␈α∂is␈α∂written,␈α∂this␈α∂register␈α∂is
␈↓ 	~␈¬α 6␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	~␈¬α 7␈↓ βt␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ β"␈β↓H␈¬βupdated␈α
to␈α
account␈α
for␈α
the␈α
space␈αused␈αup␈αby␈αthe␈αcharacter,␈αand␈αif␈αyou␈αwrite␈αin
␈↓ β"␈β↓f␈¬βthis␈α
register,␈α
a␈α
column␈α
select␈α
will␈α
be␈αgenerated␈αin␈αyour␈αoutput␈αfile␈αto␈αreally␈αput
␈↓ β"␈βα∧␈¬βyou␈α∂there.␈α≡(U)␈α∂In␈α∂pass-as-is␈α∂mode,␈α∂this␈α∂column␈α∂location␈α∂is␈α∂relative␈α∂to␈α∂the␈α∞left
␈↓ β"␈βα"␈¬βedge␈α∞of␈α∞the␈α∞paper␈α
and␈α
should␈α
be␈α
in␈α
the␈α
range␈α
of␈α
50␈α
to␈α
1650␈α
(decimal)␈α
usually.
␈↓ β"␈βα@␈¬βThe␈αleft␈αhalf␈αof␈αthis␈αregister␈αis␈αzero␈αin␈αthis␈αcase.␈α∃(J)␈α
In␈α
justify␈α
mode,␈α
it␈α
is␈α
relative
␈↓ β"␈βα↑␈¬βto␈α∩the␈α∩beginning␈α∩of␈α∩the␈α∩current␈α∩word␈α⊃of␈α⊃text␈α⊃(delimited␈α⊃by␈¬¬␈α⊃<SP>␈¬β␈α⊃or␈¬¬␈α⊃<TB>␈¬β␈α⊃or
␈↓ β"␈βα|␈¬¬<CR><LF>␈¬β␈α∩except␈α∩that␈¬¬␈α∩<SP>␈¬β␈α∩does␈α∩not␈α∩delimit␈α∩if␈α∩it␈α∩is␈α∩not␈α∩on␈α∩the␈α∩baseline).␈α#A
␈↓ β"␈ββ~␈¬βrelocation␈αidentifier␈αis␈αin␈αthe␈αleft␈αhalf␈αof␈αthe␈αregister␈αto␈αallow␈αchecking␈αfor␈αillegal
␈↓ β"␈ββ8␈¬βcolumn␈αselects.␈α_(CR)␈αIn␈αcenterify/rightify␈αmode,␈αit␈αis␈αrelative␈αto␈αthe␈αbeginning␈αof
␈↓ β"␈ββV␈¬βthe␈α
centered/rightified␈α
text␈α
with␈α
a␈α
password␈α
in␈α
the␈αleft␈αhalf␈αas␈αif␈αthe␈αtext␈αwere
␈↓ β"␈ββt␈¬βone␈α⊃big␈α⊃word.␈α"(o)␈α⊃In␈α⊃define␈α⊃atomic␈α⊃text␈α⊃overlay␈α⊃mode,␈α⊃the␈α⊂right␈α⊂half␈α⊂is␈α⊂the
␈↓ β"␈β∧∩␈¬βlocation␈α⊂relative␈α∂to␈α∂the␈α∂basepoint␈α∂of␈α∂the␈α∂overlay,␈α∂usually␈α∂the␈α∂left␈α∂edge␈α∂of␈α∂the
␈↓ β"␈β∧0␈¬βoverlay.␈α~--␈α
In␈α
arguments␈α
to␈αmacros,␈αit␈αis␈αnot␈αimplemented␈αalthough␈αyou␈αare␈αnot
␈↓ β"␈β∧N␈¬βprevented␈αfrom␈αtotally␈αscrewing␈αyourself␈αby␈α
the␈α
attempt␈α
to␈α
store␈α
in␈α
this␈α
register,
␈↓ β"␈β∧l␈¬βor␈α
getting␈α
worthless␈α
undocumented␈α
data␈α
by␈α
reading␈α
from␈α
this␈α
register.
␈↓ ↓H␈β¬
␈¬∂, ␈¬β(comma)    ␈↓ β"This␈αregister␈αworks␈αsomewhat␈αlike␈αperiod,␈αcurrent␈αrelative␈αposition␈αof␈αtext␈αabove
␈↓ β"␈β¬ ␈¬βbaseline␈α(if␈αnegative,␈α
below␈α
baseline)␈α
--␈α
thus␈¬␈α
1␈¬∂←␈¬εq␈¬1␈¬∂→,␈¬β␈α
replaces␈¬␈α
1␈¬∂↑␈¬εq␈¬β␈α
and␈¬␈α
1␈¬∂↓␈¬εq␈¬β'␈α
as
␈↓ β"␈β¬D␈¬βwell␈α
as␈¬␈α
1␈¬∂∩␈¬β␈α
and␈¬␈α
1␈¬∂∪␈¬β.␈α~(U␈α
J␈α
CR)␈α
See␈α
the␈α
note␈αafter␈αthe␈¬␈α1␈¬∂↑␈¬β␈αand␈¬␈α1␈¬∂↓␈¬β␈αcommands,␈αfor
␈↓ β"␈β¬d␈¬βlegal␈α
range␈α
of␈α
value␈α
stored␈α
in␈α
register␈¬∂␈α
,␈¬β.
␈↓ ↓H␈βεα␈¬∂; ␈¬β(semicolon)␈↓ β"Like␈α"."␈αor␈α","␈α--␈αabsolute␈αposition␈α(below␈αtop␈αof␈α
page)␈α
of␈α
the␈α
last␈α
scan␈α
line␈α
of␈α
the
␈↓ β"␈βε ␈¬βlast␈α
text␈α
line␈α
previously␈α
printed,␈α
or␈α
zero␈α
if␈α
this␈α
is␈α
explicitly␈α
the␈α
first␈α
thing␈αon␈αa
␈↓ β"␈βε>␈¬βpage.␈α⊗Note␈αthat␈αif␈αthe␈αcurrent␈αline␈αwon't␈αfit␈αon␈αa␈αpage␈αand␈αwill␈αget␈αmoved␈αto␈α
the
␈↓ β"␈βε\␈¬βnext␈αpage␈αautomatically,␈αthe␈αnext-page␈αdecision␈αwon't␈α
have␈α
been␈α
made␈α
until␈α
after
␈↓ β"␈βεz␈¬βprocessing␈αof␈αthis␈αline␈αis␈αdone,␈αso␈αthat␈αregister␈α;␈α
will␈α
still␈α
indicate␈α
the␈α
location␈α
(on
␈↓ β"␈βπ_␈¬βthe␈αprevious␈αpage)␈αof␈α
the␈α
previous␈α
line,␈α
instead␈α
of␈α
zero.␈α∀(Register␈α
;␈α
only␈α
contains
␈↓ β"␈βπ4␈¬βthis␈α
information␈α
if␈α
this␈α
feature␈α
is␈α
enabled.␈α∀See␈α
note␈α
4␈α
and␈α
the␈¬␈α
1␈¬∂⊂␈¬β␈α
command.)
␈↓ ↓H␈βπT␈¬∂L␈¬β␈↓ β"Left␈αmargin␈αis␈αstored␈αin␈αthis␈αregister␈α(␈¬¬<CR>␈¬β␈αcauses␈αcolumn␈αselect␈αhere␈α--␈αsee␈αalso
␈↓ β"␈βπp␈¬1␈¬∂J␈¬␈α
1␈¬∂C␈¬␈α
1␈¬∂R␈¬␈α
1␈¬∂O␈¬␈α
1␈¬∂W␈¬β).
␈↓ ↓H␈βλ⊂␈¬∂R␈¬β␈↓ β"Right␈αmargin␈α(for␈αJ␈αand␈αCR␈αmodes,␈αand␈αfor␈αwarning␈αyou␈α
if␈α
you␈α
try␈α
to␈α
write␈α
past␈α
it
␈↓ β"␈βλ.␈¬βin␈α
pass-as-is␈α
mode)␈α
is␈α
stored␈α
in␈α
this␈α
register.
␈↓ ↓H␈βλJ␈¬β(Note, top and bottom margins are handled differently; see the ␈¬1␈¬∂T␈¬β, ␈¬1␈¬∂t␈¬β, ␈¬1␈¬∂B␈¬β, and ␈¬1␈¬∂b␈¬β commands.)
␈↓ ↓H␈β	λ␈¬∂'␈¬¬<SIGNED OR UNSIGNED OCTAL NUMBER>␈¬∂;
␈↓ β"␈β	&␈¬βInstead␈αof␈αreading␈αa␈α
number␈α
from␈α
a␈α
register,␈α
these␈α
octal␈α
digits␈α
are␈α
assembled␈α
into
␈↓ β"␈β	D␈¬βa␈α
constant␈α
and␈α
that␈α
constant␈α
acts␈α
as␈α
an␈α
immediate␈α
operand␈α
(READONLY).
␈↓ ↓H␈β	b␈¬∂=␈¬¬<SIGNED OR UNSIGNED DECIMAL NUMBER>␈¬∂;␈¬β␈↓ ¬HSame as above except decimal conversion (READONLY).
␈↓ ↓H␈β
␈¬∂w␈¬¬<CH>␈¬β␈↓ β"Width␈α
of␈α
character␈¬¬␈α
<CH>␈¬β␈α
in␈α
current␈α
font␈α
(READONLY).
␈↓ ↓H␈β
≤␈¬∂H␈¬β␈↓ β"Total␈α
height␈α
of␈α
current␈α
font␈α
(READONLY)␈α
(if␈α
enabled,␈α
see␈α
the␈¬␈α
1␈¬∂⊂␈¬β␈α
command).
␈↓ ↓H␈β
:␈¬∂h␈¬β␈↓ β"Height␈α∀above␈α∀baseline␈α∀of␈α∀current␈α∀font␈α∪(READONLY)␈α∪(if␈α∪enabled,␈α∪see␈α∪the␈¬␈α∪1␈¬∂⊂
␈↓ β"␈β
Z␈¬βcommand).
␈↓ α_␈β⊗␈¬βThe␈α⊃arguments␈α⊃marked␈α⊃"(READONLY)"␈α⊃above␈α⊃are␈α⊃forbidden␈α⊃in␈α⊃certain␈α⊃commands␈α⊂because␈α⊂the
␈↓ ↓H␈β4␈¬βcommand␈α
expects␈α
to␈α
have␈α
a␈α
genuine␈α
register␈α
to␈α
store␈α
data␈α
into.␈α~This␈αrestriction␈αwill␈αbe␈αindicated␈αby
␈↓ ↓H␈βR␈¬β"READONLY␈α
operands␈α
not␈α
allowed"␈α
in␈α
the␈α
command␈α
descriptions.
␈↓ α_␈βp␈¬βThroughout␈αthe␈αremainder␈αof␈α
this␈α
writeup,␈α
command-arguments␈α
that␈α
are␈α
parsed␈α
in␈α
the␈α
above␈α
way
␈↓ ↓H␈β∞␈¬βwill␈αbe␈αdenoted␈αby␈αvarious␈αalphabetic␈αcharacters␈αin␈αa␈αspecial␈αfont,␈αto␈αdistinguish␈αthem␈αfrom␈αcharacters
␈↓ ↓H␈β,␈¬βthat␈αyou␈αare␈αsupposed␈αto␈αactually␈αtype␈α(which␈αare␈αin␈αa␈αkeyboard-style␈αfont␈αas␈αdescribed␈αearlier),␈αand
␈↓ ↓H␈βJ␈¬βBNF-style␈αsyntactical␈αentities␈α(which␈αare␈αin␈αyet␈αanother␈αfont␈αas␈αalso␈αshown␈αearlier).␈α∀Here␈α
are␈α
what␈α
the
␈↓ ↓H␈βh␈¬βalphabetics␈α
look␈α
like␈α
in␈α
the␈α
argument␈α
font:
␈↓ ↓H␈β}␈¬εabcdefghijklmnopqrstuvwxyz
␈↓ ↓H␈β
=␈¬The commands that use the types of arguments described above:
␈↓ ∧;␈β
}␈¬βLOAD/STORE/ARITHMETIC/LOGIC OPERATIONS
␈↓ ↓H␈β∞∀␈¬1␈¬∂←␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
load␈α
ac␈α
from␈¬ε␈α
q␈¬β.
␈↓ ↓H␈β∞2␈¬1␈¬∂→␈¬εq␈¬β␈↓ ββ(U␈α⊂J␈α⊂CR␈α⊂o␈α⊂A)␈α⊂--␈α∂store␈α∂contents␈α∂of␈α∂ac␈α∂into␈¬ε␈α∂q␈¬β,␈α∂READONLY␈α∂operands␈α∂not
␈↓ ββ␈β∞X␈¬βallowed.␈α⊗WARNING␈α--␈αDo␈αnot␈αstore␈αin␈αregisters␈α"."␈α","␈αor␈α";"␈α
except␈α
where
␈↓ ββ␈β∞v␈¬βlegal.␈α∀POX␈α
will␈α
get␈α
confused␈α
if␈α
you␈α
do.␈α∀See␈α
argument␈α
description␈α
above.
␈↓ ↓H␈β∂␈¬1␈¬∂+␈¬εq␈¬β  ␈¬1␈¬∂-␈¬εq
␈↓ ↓H␈β∂*␈¬1␈¬∂*␈¬εq␈¬β  ␈¬1␈¬∂/␈¬εq␈¬β␈↓ ββ(U␈α⊃J␈α⊃CR␈α⊃o␈α⊃A)␈α⊃--␈α⊃usual␈α⊃arithmetic␈α⊃--␈α⊂ac␈α⊂plus/minus/times/dividedby␈¬ε␈α⊂q␈¬β,
␈↓ 	~␈¬α 7␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	~␈¬α 8␈↓ βt␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ββ␈β↓H␈¬βresult␈α
in␈α
ac.
␈↓ ↓H␈β↓↑␈¬1␈¬∂%␈¬εq␈¬β␈↓ ββ(U␈αJ␈αCR␈αo␈αA)␈α--␈α"modulo"␈α--␈αac␈αdivided␈αby␈¬ε␈αq␈¬β,␈αremainder␈αin␈αac.␈α∀If␈α
the␈α
ac␈α
is
␈↓ ββ␈β↓|␈¬βnonnegative␈αand␈¬ε␈α
q␈¬β␈α
is␈α
positive,␈α
this␈α
corresponds␈α
to␈α
reducing␈α
the␈α
ac␈α
modulo
␈↓ ββ␈βα~␈¬εq␈¬β␈α∂(number␈α∂theory),␈α∂otherwise␈α∂the␈α∂result␈α∂is␈α∂nonstandard␈α∞mathematically,
␈↓ ββ␈βα@␈¬βand␈α
indeed␈α
machine-dependent.
␈↓ ↓H␈βαV␈¬1␈¬∂¬␈¬εq␈¬β  ␈¬1␈¬∂\␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
reverse␈α
arithmetic␈α
--␈¬ε␈α
q␈¬β␈α
minus/dividedby␈α
ac,␈α
result␈α
in␈α
ac.
␈↓ α&␈βαz␈¬¬[Note -- since -1 is stored in the PDP-10 as all-ones, the POX command ␈¬1␈¬∂¬'-1;␈¬¬ will logically complement the ac.]
␈↓ ↓H␈ββ∩␈¬1␈¬∂∧␈¬εq␈¬β  ␈¬1␈¬∂∨␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
usual␈α
logical␈α
operations␈α
--␈α
ac␈α
and/or␈¬ε␈α
q␈¬β,␈α
result␈α
in␈α
ac.
␈↓ ↓H␈ββ0␈¬1␈¬∂L␈¬εq␈¬β␈↓ ββ(U␈αJ␈αCR␈αo␈αA)␈α--␈αlogical␈αshift␈αof␈αac␈αleft␈αby␈¬ε␈αq␈¬β␈αbits␈α(if␈¬ε␈αq␈¬β<0␈αthen␈αshift␈αright),
␈↓ ββ␈ββV␈¬βresult␈α
in␈α
ac.
␈↓ ↓H␈ββl␈¬1␈¬∂~␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
maximum␈α
of␈α
ac␈α
and␈¬ε␈α
q␈¬β,␈α
result␈α
in␈α
ac.
␈↓ ↓H␈β∧
␈¬1␈¬∂_␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
minimum␈α
of␈α
ac␈α
and␈¬ε␈α
q␈¬β,␈α
result␈α
in␈α
ac.
␈↓ ∧k␈β∧N␈¬βSUBSCRIPT/SUPERSCRIPT COMMANDS
␈↓ ↓H␈β∧d␈¬1␈¬∂↑␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o)␈α
--␈α
move␈α
text␈α
up␈¬ε␈α
q␈¬β␈α
with␈α
respect␈α
to␈α
the␈α
baseline.
␈↓ ↓H␈β¬α␈¬1␈¬∂↓␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o)␈α
--␈α
move␈α
text␈α
down␈¬ε␈α
q␈¬β␈α
with␈α
respect␈α
to␈α
the␈α
baseline.
␈↓ α_␈β¬(␈¬βWith␈α
the␈α
simulator␈αon␈αthere␈αis␈αno␈αlimit␈αimposed␈αby␈αPOX␈αor␈αXGPSER␈αas␈αto␈αhow␈αlarge␈α(positive␈αor
␈↓ ↓H␈β¬F␈¬βnegative)␈α∂the␈α∂baseline␈α∂offset␈α∂can␈α∂be,␈α∂except␈α∞that␈α∞each␈α∞line␈α∞of␈α∞text␈α∞must␈α∞fit␈α∞entirely␈α∞on␈α∞a␈α∞page,␈α∞and
␈↓ ↓H␈β¬d␈¬βthings␈α
that␈α
are␈α
too␈α
complicated␈αwon't␈αwork,␈αespecially␈αif␈αthe␈αsystem␈αis␈αloaded.␈α_Without␈αthe␈αsimulator,
␈↓ ↓H␈βεα␈¬βPOX␈α∂makes␈α∞sure␈α∞the␈α∞XGPSER␈α∞range␈α∞of␈α∞-100␈α∞to␈α∞+77␈α∞(octal)␈α∞isn't␈α∞exceeded.␈α≤This␈α∞note␈α∞applies␈α∞to␈α∞the
␈↓ ↓H␈βε≡␈¬βvalue␈α⊃stored␈α⊃in␈α⊃register␈¬∂␈α⊃,␈¬β␈α⊃as␈α⊃well␈α⊃as␈α⊃the␈α⊃argument␈α⊃to␈α⊃the␈¬␈α⊂1␈¬∂↑␈¬β␈α⊂command␈α⊂and␈α⊂the␈α⊂negative␈α⊂of␈α⊂the
␈↓ ↓H␈βε<␈¬βargument␈α
to␈α
the␈¬␈α
1␈¬∂↓␈¬β␈α
command.
␈↓ ↓H␈βεZ␈¬1␈¬∂∩␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o)␈α
--␈α
up␈α
to␈α
default␈α
superscript␈α
location␈α
(half␈α
the␈α
total␈α
height␈α
of
␈↓ ββ␈βεz␈¬βthe␈αcurrent␈αfont),␈αeasier␈αthan␈αstoring␈αa␈αpositive␈αconstant␈αin␈α
register␈α
","␈α
or
␈↓ ββ␈βπ⊂␈¬βsetting␈α
up␈α
a␈α
positive␈α
constant␈α
in␈α
some␈α
register␈¬ε␈α
q␈¬β␈α
and␈α
then␈α
using␈¬␈α
1␈¬∂↑␈¬εq␈¬β.
␈↓ ↓H␈βπ4␈¬1␈¬∂∪␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o)␈α
--␈α
down␈α
to␈αdefault␈αsubscript␈αlocation␈α(half␈αthe␈αtotal␈αheight␈αof
␈↓ ββ␈βπT␈¬βthe␈αcurrent␈αfont),␈αeasier␈αthan␈αstoring␈αa␈αnegative␈αnumber␈αin␈αregister␈α","␈αor
␈↓ ββ␈βπj␈¬βsetting␈α
up␈α
a␈α
positive␈α
constant␈α
in␈α
some␈α
register␈¬ε␈α
q␈¬β␈α
and␈α
then␈α
using␈¬␈α
1␈¬∂↓␈¬εq␈¬β.
␈↓ ↓H␈βλ∞␈¬1␈¬∂⊗␈¬β␈↓ ββ(U␈αJ␈αCR␈αo)␈α--␈αback␈αto␈αnormal␈αbaseline␈αfrom␈α
superscript␈α
or␈α
subscript;␈α
don't
␈↓ ββ␈βλ,␈¬βforget␈α
to␈α
do␈α
this!␈α
--␈α
easier␈α
than␈¬␈α
1␈¬∂↑=0;␈¬β␈α
or␈¬␈α
1␈¬∂↓=0;␈¬β␈α
or␈¬␈α
1␈¬∂←=0;␈¬1␈¬∂→,␈¬β␈α
.
␈↓ ¬≡␈βλj␈¬βUNDERLINE OR FRACTION BAR
␈↓ α_␈β	␈¬βNote,␈αthe␈αposition␈αof␈αan␈αunderline␈α(including␈αall␈αscan-lines␈αof␈αthe␈¬␈α
1␈¬∂U␈¬εlatr␈¬β␈α
command)␈α
is␈α
restricted
␈↓ ↓H␈β	&␈¬βto␈αa␈αrange␈αof␈α-100␈αto␈α+77␈α(octal).␈α⊗The␈αuser␈αwho␈αwants␈αfraction␈αbars␈αetc.␈αoutside␈αof␈αthat␈αrange␈αhas␈αat
␈↓ ↓H␈β	D␈¬βpresent␈α⊃only␈α⊃one␈α⊃option:␈α⊃use␈α⊃the␈α⊃macros␈α⊃of␈α⊃H.␈α⊃P.␈α⊂Moravec␈α⊂which␈α⊂simulate␈α⊂underlines␈α⊂by␈α⊂patching
␈↓ ↓H␈β	b␈¬βtogether␈α∞the␈α∞appropriate␈α∞number␈α∞of␈α∞graphics␈α∞font␈α∞characters␈α∞end␈α∞to␈α∞end.␈α≤At␈α∞some␈α
future␈α
time␈α
it␈α
is
␈↓ ↓H␈β
␈¬βconceivable␈αthat␈αPOX␈αcould␈αconvert␈αunderlines␈αinto␈αvectors,␈αplaced␈αappropriately␈αon␈αthe␈αpage␈αto␈αhave
␈↓ ↓H␈β
≡␈¬βthe␈α∩desired␈α⊃effect.␈α"(This␈α⊃proposed␈α⊃feature␈α⊃would␈α⊃be␈α⊃yet␈α⊃another␈α⊃miracle␈α⊃of␈α⊃the␈α⊃"simulator",␈α⊃not
␈↓ ↓H␈β
<␈¬βavailable␈α
otherwise.)
␈↓ ↓H␈β
R␈¬1␈¬∂U␈¬εlatr␈¬β␈↓ ββ(U␈α⊃J␈α⊃CR␈α⊃o)␈α⊃--␈α⊃underline␈α⊃from␈α⊃column␈¬ε␈α⊃l␈¬β␈α⊃to␈α⊃column␈¬ε␈α⊃r␈¬β,␈α⊃on␈α⊃scan␈α⊃line␈¬ε␈α⊂a
␈↓ ββ␈β
p␈¬βrelative␈α∀to␈α∀the␈α∀baseline␈α∀(␈¬εa␈¬β>0␈α∀moves␈α∀the␈α∀underline␈α∀down),␈α∀with␈α∪line
␈↓ ββ␈β∞␈¬βthickness␈¬ε␈α⊃t␈¬β␈α⊃(extending␈α⊃downward␈α⊃from␈α⊃scan␈α⊃line␈¬ε␈α⊃a␈¬β␈α⊃if␈¬ε␈α⊃t␈¬β>1).␈α"See␈α⊂the
␈↓ ββ␈β4␈¬βexample␈α∪at␈α∪the␈α∪end␈α∪of␈α∪these␈α∪commands.␈α&NOTE␈α∪--␈α∪This␈α∪command␈α∪is
␈↓ ββ␈βJ␈¬βinefficient␈α2(when␈¬ε␈α2t␈¬β>1)␈α2because␈α1XGPSER␈α1doesn't␈α1support
␈↓ ββ␈βp␈¬βmore-than-one-scanline␈α∂underscores␈α∞and␈α∞hence␈α∞POX␈α∞must␈α∞break␈α∞up␈α∞this
␈↓ ββ␈β∞␈¬βcommand␈α∩into␈α∩one␈α∩XGP␈α∩underscore␈α⊃per␈α⊃scan␈α⊃line,␈α⊃with␈α⊃column-selects
␈↓ ββ␈β,␈¬βbetween␈α
each.
␈↓ ↓H␈βH␈¬1␈¬∂{␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o)␈α
--␈α
start␈α
underline,␈α
see␈α
UUO␈α
manual␈α
under␈α
XGP␈α
service.
␈↓ ↓H␈β`␈¬1␈¬∂}␈¬εat␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o)␈α--␈αin␈αconjunction␈αwith␈¬␈α1␈¬∂{␈¬β,␈αend␈αunderline,␈αon␈αscan␈αline␈¬ε␈αa␈¬β␈αwith
␈↓ ββ␈β}␈¬βthickness␈¬ε␈α
t␈¬β.
␈↓ α_␈β
≤␈¬βNote:␈αthe␈¬␈α1␈¬∂{␈¬β␈αand␈¬␈α1␈¬∂}␈¬εat␈¬β␈αcommands␈αare␈αno␈αlonger␈αrecommended,␈αbecause␈αin␈αjustify␈αmode␈αif␈αa␈αline
␈↓ ↓H␈β
B␈¬βis␈α
broken␈α
in␈α
the␈α
middle␈α
of␈α
an␈α
underlined␈α
portion␈α
of␈α
text,␈α
POX␈α
hasn't␈α
yet␈α
seen␈α
the␈α
parameters␈α
to␈α
be␈α
used
␈↓ ↓H␈β
`␈¬βand␈αmust␈αguess␈αwhat␈αthey␈αare␈α(currently␈αPOX␈αassumes␈αthey␈αwill␈αbe␈¬∂␈α
=2;=2;␈¬β␈α
but␈α
warns␈α
the␈α
user␈α
in␈α
case
␈↓ ↓H␈β
}␈¬βhe␈α∂didn't␈α∂expect␈α∞the␈α∞line␈α∞to␈α∞be␈α∞broken␈α∞and/or␈α∞didn't␈α∞want␈α∞to␈α∞use␈α∞those␈α∞parameters).␈α≤To␈α∞avoid␈α∞this
␈↓ ↓H␈β∞∀␈¬βproblem,␈α
use␈α
the␈α
newer␈¬␈α
1␈¬∂[␈¬εat␈¬β␈α
and␈¬␈α
1␈¬∂]␈¬β␈α
pair␈α
of␈α
commands.
␈↓ ↓H␈β∞2␈¬1␈¬∂[␈¬εat␈¬β␈↓ ββ(U␈αJ␈αCR␈αo)␈α--␈αstart␈αunderline,␈α
specifying␈α
starting-scanline␈α
and␈α
thickness␈α
at
␈↓ ββ␈β∞X␈¬βthe␈α∂outset␈α∂so␈α∂that␈α∂the␈α∞underline␈α∞can␈α∞be␈α∞broken␈α∞across␈α∞several␈α∞lines␈α∞of
␈↓ ββ␈β∞v␈¬βoutput␈α
automatically␈α
(especially␈α
useful␈α
in␈α
justify␈α
mode).
␈↓ ↓H␈β∂∩␈¬1␈¬∂]␈¬β␈↓ ββ(U␈αJ␈αCR␈αo)␈α--␈αend␈αunderline␈αusing␈αparameters␈αspecified␈αin␈αthe␈αpreceeding
␈↓ ββ␈β∂*␈¬1␈¬∂[␈¬εat␈¬β␈α
command.
␈↓ 	~␈¬α 8␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	~␈¬α 9␈↓ βt␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ βC␈β↓f␈¬βENTER SPECIAL-FORMATTING MODES WITH ALTERNATE MARGINS
␈↓ ↓H␈βαα␈¬1␈¬∂j␈¬β ␈¬1␈¬∂r␈¬β or ␈¬1␈¬∂c␈¬β␈↓ ββ(U)␈α--␈αsame␈αas␈¬␈α1␈¬∂J␈¬␈α1␈¬∂R␈¬β␈αor␈¬␈α1␈¬∂C␈¬β␈α(respectively)␈αexcept␈αthey␈αset␈α
up␈α
temporary
␈↓ ββ␈βα"␈¬βmargins␈αfrom␈αregisters␈¬∂␈αl␈¬β␈αand␈¬∂␈αr␈¬β,␈αthen␈αrestore␈¬∂␈αL␈¬β␈αand␈¬∂␈αR␈¬β␈αto␈αtheir␈αold␈αvalues
␈↓ ββ␈βα@␈¬βupon␈α⊂exit.␈α∨[Note␈α∂that␈α∂a␈¬¬␈α∂<CR>␈¬β␈α∂occurring␈α∂inside␈α∂one␈α∂of␈α∂these␈α∂commands,
␈↓ ββ␈βα\␈¬βsuch␈α∩as␈α∩when␈¬¬␈α∩<CR>␈¬β␈α∩on␈α⊃input␈α⊃terminates␈¬␈α⊃1␈¬∂r␈¬β␈α⊃or␈¬␈α⊃1␈¬∂c␈¬β,␈α⊃will␈α⊃set␈α⊃the␈α⊃page
␈↓ ββ␈βα|␈¬βprinter␈αat␈αthe␈¬∂␈αl␈¬β␈αrather␈αthan␈¬∂␈αL␈¬β␈αmargin.␈α⊗Thus,␈αalthough␈αonly␈αthe␈¬∂␈αr␈¬β␈α
register
␈↓ ββ␈ββ~␈¬βneeds␈αto␈αbe␈αloaded␈αfor␈αthe␈αrightify␈αper-se,␈αthe␈¬∂␈αl␈¬β␈αregister␈αmust␈αbe␈α
loaded
␈↓ ββ␈ββ8␈¬βto␈α
something␈α
reasonable␈α
for␈α
it␈α
to␈α
terminate␈α
with␈¬¬␈α
<CR>␈¬β␈α
correctly.]
␈↓ ∧∨␈ββt␈¬βGENERATING AND QUOTING SPECIAL CHARACTERS
␈↓ ↓H␈β∧⊂␈¬1␈¬∂'␈¬¬<OCTAL DIGITS>␈¬∂;␈¬β  ␈↓ βS(U)␈α--␈α
accepts␈α
an␈α
octal␈α
value␈α
and␈α
transmits␈α
it␈α
preceded␈α
by␈α
a␈α
rubout.
␈↓ ββ␈β∧0␈¬βThis␈α
is␈α
used␈α
for␈α
printing␈α
the␈α
characters␈α
that␈α
are␈α
hidden␈α
under␈α
octal␈α
values
␈↓ ββ␈β∧N␈¬β0,11,12,14,15␈α
and␈α
177.␈α~WARNING␈α
--␈α
Octal␈α
values␈α
of␈α
1␈α
thru␈α
4␈α
will␈αcause
␈↓ ββ␈β∧l␈¬βXGP-escape␈αto␈αoccur,␈αthen␈αthe␈αXGP␈αservice␈αwill␈αeat␈αone␈αor␈αmore␈αbytes␈αof
␈↓ ββ␈β¬
␈¬βwhatever␈αhappens␈αto␈αbe␈αnext␈αin␈αthe␈αoutput␈αfile.␈α⊗The␈αresult␈αis␈αthat␈αif␈αyou
␈↓ ββ␈β¬(␈¬βhave␈α∞the␈α∞simulator␈α
on,␈α
or␈α
for␈α
any␈α
other␈α
reason␈α
cannot␈α
predict␈α
what␈α
the
␈↓ ββ␈β¬F␈¬βnext␈α
bytes␈α
generated␈α
will␈α
be,␈α
unpredictable␈α
things␈α
may␈αoccur.␈α_The␈αonly
␈↓ ββ␈β¬d␈¬βreason␈α∂POX␈α∂does␈α∂not␈α∂generate␈α∂an␈α∂error␈α∂is␈α∂because␈α∂Ralph␈α∂Gorin␈α∂insists
␈↓ ββ␈βε␈¬βthat␈α∞old␈α∞files␈α∞that␈α∞do␈α∞such␈α∞things␈α∞as␈¬␈α∞1␈¬∂'3;↓↓␈¬β␈α∞(instead␈α∞of␈α
the␈α
preferable
␈↓ ββ␈βε≡␈¬1␈¬∂←'201;␈¬1␈¬∂Y␈¬β)␈α∀will␈α∀continue␈α∀to␈α∀work␈α∀as␈α∀they␈α∀always␈α∀did.␈α'(Note,␈α∪the
␈↓ ββ␈βε<␈¬βfunction␈α⊃of␈α⊃this␈α⊃command␈α⊃is␈α⊃modified␈α⊃by␈α⊃the␈¬␈α⊂1␈¬∂⊂'1000;␈¬β␈α⊂or␈¬␈α⊂1␈¬∂⊂'2000;
␈↓ ββ␈βεZ␈¬βcommand.)␈α$In␈α⊃modes␈α⊃other␈α⊃than␈α⊃U,␈α⊃it␈α⊃is␈α⊃necessary␈α⊃to␈α⊃use␈¬␈α⊃1␈¬∂A'␈¬¬<OCTAL
␈↓ ββ␈βεz␈¬¬DIGITS>␈¬∂;␈¬β␈α⊂to␈α⊂get␈α⊂this␈α⊂effect,␈α∂and␈α∂because␈α∂that␈α∂command␈α∂does␈α∂the␈α∂"right"
␈↓ ββ␈βπ_␈¬βthing␈α⊂in␈α⊂all␈α⊂cases␈α⊂instead␈α⊂of␈α⊂the␈α⊂weirdnesses␈α∂discussed␈α∂above␈α∂for␈α∂this
␈↓ ββ␈βπ6␈¬βcommand,␈α
it␈α
is␈α
preferable␈α
even␈α
in␈α
U␈α
mode.
␈↓ ↓H␈βπR␈¬1␈¬∂"␈¬¬<CH>␈¬β␈↓ ββ(U␈α
[J*]␈α
[CR*]␈α
[o]␈α
A)␈α
--␈α
quote␈α
the␈α
character␈¬¬␈α<CH>␈¬β.␈α_In␈αmodes␈α(U␈αJ␈αCR)␈αthis
␈↓ ββ␈βπr␈¬βmeans␈α
placing␈α
a␈α
rubout␈α
in␈α
front␈α
␈↓&only␈α
if␈α
necessary␈↓)αα␈α
to␈α
make␈α
the␈α
XGP␈α
print␈α
it
␈↓ ββ␈βλ⊂␈¬βin␈α≤the␈α≤current␈α≠font␈α≠instead␈α≠of␈α≠performing␈α≠any␈α≠special␈α≠function.
␈↓ ββ␈βλ.␈¬βSpecial-function␈αis␈αalso␈αsuppressed␈αas␈αfar␈αas␈αthe␈αjustification␈αalgorithm␈αis
␈↓ ββ␈βλL␈¬βconcerned,␈αthus␈αa␈αspace␈αcharacter␈αquoted␈αby␈αthis␈αcommand␈αwon't␈αcause␈α
a
␈↓ ββ␈βλh␈¬βword-break.␈α_If␈αthe␈αcurrent␈¬␈α1␈¬β␈αcharacter␈αis␈αquoted,␈αit␈αwill␈αgo␈αthrough␈αas␈αa
␈↓ ββ␈β	λ␈¬βcharacter␈αinstead␈αof␈αcausing␈αa␈αbrick␈αcommand␈αto␈αbegin.␈α_Only␈αrubout␈αand
␈↓ ββ␈β	&␈¬βnull␈α∂may␈α∂not␈α∂be␈α∂quoted␈α∂by␈α∂this␈α∂command.␈α≡In␈α∂mode␈α∞(A)␈α∞nothing␈α∞special
␈↓ ββ␈β	B␈¬βhappens␈αexcept␈αthat␈αif␈¬¬␈α<CH>␈¬β␈αis␈α
the␈α
current␈¬␈α
1␈¬β␈α
character␈α
or␈α
a␈α
comma␈α
or␈α
one
␈↓ ββ␈β	b␈¬βof␈α∩the␈α∩nesting␈α∩characters␈α∩being␈α∩used,␈α∩they␈α∩are␈α⊃passed␈α⊃as␈α⊃characters
␈↓ ββ␈β
␈¬βinstead␈α∪of␈α∪causing␈α∪their␈α∪usual␈α∪special␈α∪function␈α∪to␈α∪occur␈α∪(begin␈α∪brick
␈↓ ββ␈β
≡␈¬βcommand,␈αbreak␈αto␈α
next␈α
argument,␈α
change␈α
nesting␈α
depth,␈α
respectively).␈α∀In
␈↓ ββ␈β
<␈¬βmodes␈α∂J␈α∂CR␈α∂and␈α∞o,␈α∞this␈α∞command␈α∞is␈α∞currently␈α∞implemented␈α∞only␈α∞for␈α∞the
␈↓ ββ␈β
Z␈¬βcharacters␈α
that␈α
do␈α
not␈α
require␈α
the␈α
'177␈α
prefix.
␈↓ ↓H␈β
v␈¬11␈¬β␈↓ ββ(U␈α∩J␈α∩CR␈α∩A)␈α∩[no␈α∩longer␈α∩recommended,␈α∩use␈¬␈α∩1␈¬∂"␈¬1␈¬β␈α⊃instead␈α⊃(see␈α⊃previous
␈↓ ββ␈β⊗␈¬βcommand)]␈α--␈αquotes␈αthe␈αescape␈αcharacter␈α--␈αtakes␈αprecedence␈αover␈αany
␈↓ ββ␈β4␈¬βother␈α∂command␈α∂that␈α∂parses␈α∂the␈α∂same␈α∂due␈α∂to␈α∂coincidence␈α∞of␈α∞characters,
␈↓ ββ␈βR␈¬βthereby␈α≡making␈α≡that␈α≡other␈α≡command␈α≥unavailable␈α≥--␈α≥Please␈α≥use
␈↓ ββ␈βn␈¬1␈¬∂⊂'1000001;␈¬β␈α∂which␈α∂disables␈α∂this␈α∂crufty␈α∂old␈α∂undesirable␈α∂and␈α∞unneeded
␈↓ ββ␈β∞␈¬βfeature,␈α
and␈α
thus␈α
unhides␈α
the␈α
other␈α
command.
␈↓ ↓H␈β$␈¬1␈¬∂A␈¬εq␈¬β␈↓ ββ(U␈α
[J*]␈α
A)␈α
--␈α
the␈α
seven␈α
low-order␈αbits␈αof␈¬ε␈αq␈¬β␈αare␈αassembled␈αinto␈αan␈αASCII
␈↓ ββ␈βH␈¬βcharacter,␈α∂and␈¬␈α∂1␈¬∂"␈¬β␈α∂is␈α∂performed␈α∂on␈α∂that␈α∂character.␈α≡Note,␈α∂although␈α∂this
␈↓ ββ␈βh␈¬βcommand␈α⊗is␈α⊗not␈α⊗yet␈α∃implemented␈α∃inside␈α∃justify␈α∃or␈α∃centerify/rightify
␈↓ ββ␈β
ε␈¬βmodes,␈αif␈αyou␈αjust␈αwant␈αto␈αgenerate␈αa␈αfunny␈αcharacter␈αyou␈αdon't␈αhave␈αon
␈↓ ββ␈β
$␈¬βyour␈αterminal,␈αsuch␈αas␈αcurly␈αbrace,␈αthe␈αfollowing␈αtrick␈αmay␈αbe␈αused:␈α⊗Call
␈↓ ββ␈β
B␈¬βthe␈α∞EVAL␈α∞macro␈α∞(defined␈α
in␈α
the␈α
section␈α
on␈α
macros␈α
with␈α
arguments)␈α
with
␈↓ ββ␈β
↑␈¬βthe␈¬␈α
1␈¬∂A␈¬β...␈α→command␈αas␈αargument,␈αfor␈αexample␈¬∂␈α\!EVAL(\A'176;);␈¬β,␈αwhich
␈↓ ββ␈β
}␈¬βis␈α
legal␈αin␈αall␈αmodes.␈α_Of␈αcourse,␈αthis␈αwill␈αnot␈αhave␈αthe␈αright␈αeffect␈αif␈αthe
␈↓ ββ␈β∞≤␈¬βfunny␈α
character␈α
requires␈α
a␈α
rubout␈α
preceding␈α
it.
␈↓ ↓H␈β∞2␈¬1␈¬∂D␈¬εq␈¬β␈↓ ββ(U␈αJ␈αCR␈αo␈αA)␈α--␈αconverts␈¬ε␈αq␈¬β␈αinto␈αa␈αstring␈αof␈αdecimal␈α
digits␈α
representing␈α
its
␈↓ ββ␈β∞X␈¬βvalue,␈α
like␈¬∂␈α
CVS␈¬β␈α
in␈α
SAIL.
␈↓ ↓H␈β∞t␈¬1␈¬∂a␈¬β␈↓ ββ(U␈αJ␈αCR␈αo␈αA)␈α--␈αeats␈αthe␈αnext␈αcharacter␈αand␈αloads␈αits␈αASCII␈αvalue␈αinto␈αthe
␈↓ ββ␈β∂∀␈¬βac.␈α≡This␈α∞is␈α∞useful␈α∞for␈α∞munching␈α∞through␈α∞a␈α∞string␈α∞that␈α∞is␈α∞the␈α∞body␈α∞of␈α∞a
␈↓ ββ␈β∂2␈¬βmacro␈α
or␈α
an␈α
argument␈α
to␈α
one.␈α∀(The␈α
usual␈α
technique␈α
is␈α
to␈α
have␈α
a␈α
recursive
␈↓ 	~␈¬α 9␈↓ βt␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 10␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ββ␈β↓H␈¬βmacro␈α∞with␈α∞argument␈α∞X␈α∞(say)␈α∞that␈α∞calls␈α∞itself␈α
via␈¬∂␈α
\!foo(\a⊗X⊗);␈¬β.␈α~This
␈↓ ββ␈β↓f␈¬βway,␈αeach␈αtime␈αthe␈αrecursive␈αcall␈αis␈αdone␈αthe␈αnew␈α
invocation␈α
has␈α
the␈α
next
␈↓ ββ␈βα∧␈¬βcharacter's␈αvalue␈αin␈αthe␈αac␈αand␈αthe␈αrest␈αof␈αthe␈αstring␈αas␈αthe␈αargument␈αX.
␈↓ ββ␈βα"␈¬βA␈αdummy␈αcharacter␈αtacked␈αon␈αthe␈αend␈αby␈αa␈αtop-level␈αmacro␈αcan␈αbe␈αused
␈↓ ββ␈βα@␈¬βto␈α
terminate␈α
the␈α
recursion.)
␈↓ ¬[␈βα|␈¬βSTACK OPERATIONS
␈↓ ↓H␈ββ_␈¬1␈¬∂P␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
push␈α
ac.
␈↓ ↓H␈ββ6␈¬1␈¬∂p␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
pop␈α
ac.
␈↓ ↓H␈ββN␈¬1␈¬∂Q␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
push␈α
register␈¬ε␈α
q␈¬β.
␈↓ ↓H␈ββl␈¬1␈¬∂q␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
pop␈α
to␈α
register␈¬ε␈α
q␈¬β.␈α
--␈α
READONLY␈α
operand␈α
not␈α
allowed.
␈↓ ↓H␈β∧⊂␈¬1␈¬∂#␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
push␈α
the␈α
current␈α
font␈α
number␈α
(octal␈α
0␈α
to␈α
17).
␈↓ ↓H␈β∧.␈¬1␈¬∂G␈¬β␈↓ ββ(U␈α⊃J␈α⊂o)␈α⊂--␈α⊂pop␈α⊂a␈α⊂number␈α⊂off␈α⊂the␈α⊂stack␈α⊂and␈α⊂use␈α⊂that␈α⊂number␈α⊂to␈α⊂do␈α⊂a
␈↓ ββ␈β∧L␈¬βfont-select␈α∪like␈¬␈α∪1␈¬∂F␈¬β␈α∩--␈α∩must␈α∩be␈α∩in␈α∩the␈α∩range␈α∩octal␈α∩0␈α∩to␈α∩17␈α∩to␈α∩work
␈↓ ββ␈β∧l␈¬βcorrectly␈α
--␈α
not␈α
yet␈α
fully␈α
supported.
␈↓ β]␈β¬(␈¬βTEXT-MODE VECTORS (SEE ALSO ATOMIC VECTOR OVERLAY)
␈↓ ↓H␈β¬C␈¬1␈¬∂V␈¬εx␈¬β␈↓#n1␈¬εy␈¬β␈↓#n1␈¬εx␈¬β␈↓#n2␈¬εy␈¬β␈↓#n2␈¬εw
␈↓ ↓H␈β¬m␈¬β  ␈↓ ββ(U)␈α∞--␈α∞draw␈α∞a␈α∞vector␈α∞of␈¬α␈α∞HORIZONTAL␈¬β␈α∞width␈¬ε␈α∞w␈¬β␈α
between␈α
(␈¬εx␈¬β␈↓#s1␈↓#,␈¬εy␈¬β␈↓#s1␈↓#)␈α
and
␈↓ ββ␈βε∩␈¬β(␈¬εx␈¬β␈↓#s2␈↓#,␈¬εy␈¬β␈↓#s2␈↓#)␈α∃--␈α∃vectors␈α∃on␈α∃the␈α∃XGP␈α∃(at␈α∀SU-AI)␈α∀are␈α∀actually␈α∀tall␈α∀skinny
␈↓ ββ␈βε=␈¬βparallelograms␈αwhich␈αget␈αincreasingly␈α
bad-looking␈α
as␈α
they␈α
approach␈α
being
␈↓ ββ␈βε`␈¬βhorizontal␈α--␈αPOX␈αdoes␈αnothing␈αto␈αimprove␈αthe␈αlooks␈αof␈αdiagonal␈αvectors,
␈↓ ββ␈βπβ␈¬βbut␈α∞exactly␈α∞horizontal␈α∞vectors␈α∞(which␈α
wouldn't␈α
work␈α
at␈α
all␈α
normally)␈α
are
␈↓ ββ␈βπ&␈¬βreplaced␈α⊃by␈α⊃vertical␈α⊃vectors␈α⊃that␈α⊃are␈α⊃very␈α⊃very␈α⊃wide␈α⊃and␈α⊃very␈α⊃very
␈↓ ββ␈βπA␈¬βshort).␈α⊗Coordinates␈αare␈αmeasured␈αin␈αusual␈αXGP␈αcoordinates.␈¬ε␈α⊗x␈¬β␈α
increases
␈↓ ββ␈βπd␈¬βfrom␈αleft␈αto␈αright,␈αwith␈¬ε␈αx␈¬β=0␈αbeing␈αthe␈αleft␈α
edge.␈¬ε␈α∀y␈¬β␈α
increases␈α
from␈α
top␈α
to
␈↓ ββ␈βλπ␈¬βbottom,␈α⊂with␈¬ε␈α⊂y␈¬β=0␈α⊂being␈α⊂the␈α⊂top␈α⊂edge.␈α∨Vectors␈α∂no␈α∂longer␈α∂have␈α∂to␈α∂be
␈↓ ββ␈βλ*␈¬βpresented␈α∂to␈α∞POX␈α∞with␈α∞MIN(␈¬εy␈¬β␈↓#s1␈↓#,␈¬εy␈¬β␈↓#s2␈↓#)␈α∞in␈α∞ascending␈α∞sequence␈α∞because␈α∞POX
␈↓ ββ␈βλU␈¬βnow␈α∩sorts␈α∩them␈α∩into␈α∩correct␈α∩sequence␈α∩automatically,␈α⊃but␈α⊃because␈α⊃the
␈↓ ββ␈βλx␈¬βsystem␈α∞requires␈α
both␈α
text␈α
and␈α
vectors␈α
to␈α
be␈α
sorted␈α
correctly,␈α
you␈α
must
␈↓ ββ␈β	≠␈¬βusually␈α⊃enable␈α⊃the␈α⊃text␈α⊃linefeed␈α⊃simulator␈α⊂(see␈α⊂note␈α⊂2)␈α⊂whenever␈α⊂you
␈↓ ββ␈β	>␈¬βwant␈α∞ordinary␈α
text␈α
to␈α
appear␈α
below␈α
any␈α
vector␈α
or␈α
overlay␈α
on␈α
the␈α
same
␈↓ ββ␈β	a␈¬βpage.␈α_One␈αfinal␈αwarning␈αwith␈αvectors␈αis␈αnot␈αto␈αattempt␈αto␈αdo␈αanything␈αat
␈↓ ββ␈β
∧␈¬βthe␈α∞very␈α∞top␈α∞of␈α∞the␈α∞first␈α∞page␈α
of␈α
output␈α
(the␈α
system␈α
needs␈α
time␈α
to␈α
get
␈↓ ββ␈β
'␈¬βstarted␈α
loading␈α
buffers).
␈↓ ↓H␈β
B␈¬1␈¬∂v␈¬εx␈¬β␈↓#n1␈¬εy␈¬β␈↓#n1␈¬εx␈¬β␈↓#n2␈¬εy␈¬β␈↓#n2␈¬εt
␈↓ ↓H␈β
l␈¬β  ␈↓ ββ(U)␈α
--␈α
same␈α
as␈¬␈α
1␈¬∂V␈¬εx␈¬β␈↓#n1␈¬εy␈¬β␈↓#n1␈¬εx␈¬β␈↓#n2␈¬εy␈¬β␈↓#n2␈¬εw␈¬β␈α
except␈¬ε␈α
t␈¬β␈αis␈αthickness␈αperpendicular␈αto
␈↓ ββ␈β↔␈¬βthe␈α
direction␈α
of␈αthe␈αvector␈αin␈αall␈αcases␈α--␈αi.e.,␈αfor␈αnon-horizontal␈αvectors
␈↓ ββ␈β-␈¬εw␈¬β=SQRT(␈¬εt␈¬β␈↓#
2␈↓#((␈¬εx␈¬β␈↓#s1␈↓#-␈¬εx␈¬β␈↓#s2␈↓#)␈↓#
2␈↓#+(␈¬εy␈¬β␈↓#s1␈↓#-␈¬εy␈¬β␈↓#s2␈↓#)␈↓#
2␈↓#)/(␈¬εy␈¬β␈↓#s1␈↓#-␈¬εy␈¬β␈↓#s2␈↓#)␈↓#
2␈↓#),␈α?␈αwhereas␈α?␈α
exactly
␈↓ ββ␈β[␈¬βhorizontal␈α
vectors␈α
are␈α
fixed␈α
up␈αby␈αthis␈αcommand␈αthe␈αsame␈αas␈αby␈αthe␈¬␈α1␈¬∂V
␈↓ ββ␈β␈¬βcommand␈α--␈αnote␈αthat␈αvectors␈αwhich␈αare␈α
almost␈α
but␈α
not␈α
exactly␈α
horizontal
␈↓ ββ␈β#␈¬βstill␈α⊃come␈α⊃out␈α⊂quite␈α⊂ugly␈α⊂and␈α⊂usually␈α⊂overshoot␈α⊂their␈α⊂specified␈α⊂bottom
␈↓ ββ␈βF␈¬βends.
␈↓ ∧~␈β
α␈¬βCONTROLLING INTERLINE AND INTERWORD SPACING
␈↓ ↓H␈β
≡␈¬1␈¬∂λ␈¬β␈↓ ββ(U)␈α--␈αuse␈αthe␈αcontents␈αof␈αthe␈αac␈αto␈αset␈αthe␈αinterline␈αspacing,␈αthat␈αis,␈αthe
␈↓ ββ␈β
>␈¬βminimum␈α∪number␈α∪of␈α∪blank␈α∪scan␈α∪lines␈α∪(1/200␈α∩inch)␈α∩between␈α∩the␈α∩very
␈↓ ββ␈β
\␈¬βbottom␈αof␈αeach␈αline␈αof␈αtext␈α(including␈αsubscripts)␈αand␈αthe␈αvery␈αtop␈αof␈αthe
␈↓ ββ␈β
z␈¬βnext␈α∂line␈α∂(including␈α∂superscripts).␈α≡This␈α∂parameter␈α∂has␈α∂different␈α∞effects
␈↓ ββ␈β∞_␈¬βdepending␈αon␈αwhether␈αthe␈αsimulator␈αis␈αenabled.␈α⊗With␈αthe␈αsimulator␈αon,␈αif
␈↓ ββ␈β∞6␈¬βthis␈αparameter␈αis␈αnegative␈α
it␈α
allows␈α
overlapping,␈α
if␈α
zero␈α
it␈α
allows␈α
bumping,
␈↓ ββ␈β∞T␈¬βand␈α⊃if␈α⊃positive␈α⊃it␈α⊂forces␈α⊂a␈α⊂gap,␈α⊂i.e.,␈α⊂it␈α⊂is␈α⊂completely␈α⊂logical.␈α With␈α⊂the
␈↓ ββ␈β∞r␈¬βsimulator␈α∞off␈α∞it␈α∞doesn't␈α∞take␈α
effect␈α
until␈α
after␈α
the␈α
next␈α
text␈α
line,␈α
and␈α
its
␈↓ ββ␈β∂⊂␈¬βinterpretation␈α⊃depends␈α⊃on␈α⊃its␈α⊃sign:␈α"positive␈α⊃is␈α⊃the␈α⊃same␈α⊃as␈α⊂with␈α⊂the
␈↓ ββ␈β∂.␈¬βsimulator␈αon,␈αzero␈αor␈αnegative␈αmeans␈αsystem␈αdefault␈αwhatever␈αit␈αis␈αtoday
␈↓ 	∪␈¬α 10␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 11␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ββ␈β↓H␈¬β(recently␈α
it␈α
has␈α
had␈α
the␈α
value␈α
4).
␈↓ ↓H␈β↓d␈¬1␈¬∂ε␈¬β␈↓ ββ(U)␈α∞--␈α∞use␈α∞the␈α∞contents␈α∞of␈α∞the␈α∞ac␈α∞to␈α∞set␈α∞the␈α∞interbase␈α∞spacing,␈α∞i.e.,␈α
the
␈↓ ββ␈βα∧␈¬βminimum␈αnumber␈αof␈αscan␈αlines␈αthat␈αbaselines␈αare␈αforced␈αapart.␈α⊗When␈αthe
␈↓ ββ␈βα"␈¬βsimulator␈α⊗is␈α⊗on,␈α⊗this␈α⊗parameter␈α⊗together␈α⊗with␈α⊗the␈α⊗interline␈α⊗spacing
␈↓ ββ␈βα@␈¬βdetermine␈α∂how␈α∂far␈α∂apart␈α∂lines␈α∂will␈α∞be␈α∞(each␈α∞line␈α∞(after␈α∞the␈α∞first␈α∞on␈α∞the
␈↓ ββ␈βα↑␈¬βpage)␈α∞is␈α∞placed␈α∞as␈α∞high␈α∞up␈α∞on␈α∞the␈α∞page␈α∞as␈α∞is␈α∞possible␈α
without␈α
violating
␈↓ ββ␈βα|␈¬βeither␈α∞constraint).␈α≤When␈α∞the␈α∞simulator␈α∞is␈α∞off,␈α∞this␈α∞parameter␈α∞is␈α∞ignored
␈↓ ββ␈ββ~␈¬βand␈αonly␈α
the␈α
interline␈α
spacing␈α
has␈α
any␈α
effect.␈α∀--␈α
A␈α
logical␈α
consequence␈α
of
␈↓ ββ␈ββ8␈¬βthe␈α
above␈α
is␈α
that␈α
if␈α
the␈αinterline␈αspacing␈αis␈αvery␈αnegative,␈αthen␈αonly␈αthe
␈↓ ββ␈ββV␈¬βinterbase␈αspacing␈αhas␈αany␈αeffect,␈αand␈αyou␈αget␈α
evenly␈α
spaced␈α
lines␈α
even␈α
if
␈↓ ββ␈ββt␈¬βthey␈α∞overlap;␈α∞whereas␈α∞if␈α∞interbase␈α∞spacing␈α∞is␈α∞negative␈α∞or␈α
close␈α
to␈α
zero
␈↓ ββ␈β∧∩␈¬βand␈α∩interline␈α∩spacing␈α∩is␈α∩reasonable,␈α∩then␈α⊃in␈α⊃most␈α⊃cases␈α⊃only␈α⊃interline
␈↓ ββ␈β∧0␈¬βspacing␈αwill␈αbe␈αin␈αcontrol,␈αand␈αyou␈αwill␈αget␈αlines␈αwith␈αthe␈αsame␈αamount␈αof
␈↓ ββ␈β∧N␈¬βspace␈α⊃between␈α⊃each␈α⊃pair,␈α⊃even␈α⊂if␈α⊂differing␈α⊂amounts␈α⊂of␈α⊂subscripts␈α⊂etc.
␈↓ ββ␈β∧l␈¬βcause␈α
irregular␈α
spacing␈α
to␈α
occur.
␈↓ ↓H␈β¬λ␈¬1␈¬∂≤␈¬β␈↓ ββ(U)␈α∪--␈α∪use␈α∪the␈α∪contents␈α∪of␈α∪the␈α∪ac␈α∪to␈α∩set␈α∩the␈α∩maximum␈α∩allowed␈α∩gap
␈↓ ββ␈β¬(␈¬βbetween␈αwords␈αwhen␈αjustifying.␈α⊗If␈αnarrow␈αmargins,␈αcombined␈αwith␈αa␈αlong
␈↓ ββ␈β¬F␈¬βword␈α∞that␈α∞doesn't␈α∞fit␈α∞on␈α∞a␈α∞line␈α
and␈α
so␈α
must␈α
be␈α
shoved␈α
to␈α
the␈α
next␈α
line,
␈↓ ββ␈β¬d␈¬βcauses␈α⊂the␈α⊂current␈α⊂line␈α⊂to␈α⊂have␈α⊂gaps␈α∂between␈α∂words␈α∂that␈α∂exceed␈α∂this
␈↓ ββ␈βεα␈¬βparameter,␈α∞an␈α∞error␈α∞is␈α
generated␈α
to␈α
warn␈α
the␈α
user␈α
that␈α
the␈α
output␈α
may
␈↓ ββ␈βε ␈¬βbe␈α∞ugly.␈α≤The␈α∞user␈α∞may␈α∞then␈α
change␈α
the␈α
wording␈α
or␈α
margins␈α
slightly␈α
to
␈↓ ββ␈βε>␈¬βtry␈α⊂to␈α⊂alleviate␈α⊂this␈α⊂condition.␈α If␈α∂the␈α∂ac␈α∂is␈α∂currently␈α∂non-positive,␈α∂the
␈↓ ββ␈βε\␈¬βcheck␈α
is␈α
disabled␈α
(default␈α
situation).
␈↓ βa␈βπ_␈¬βRESET VERTICAL POSITION FOR TEXT (SEE ALSO OVERLAYS)
␈↓ ↓H␈βπ.␈¬1␈¬∂Y␈¬εq␈¬β␈↓ ββ(U)␈α--␈αset␈αabsolute␈αY␈αposition␈αfor␈αtop␈αscan␈α
line␈α
of␈α
this␈α
text␈α
line␈α
relative␈α
to
␈↓ ββ␈βπT␈¬βtop␈α
of␈α
page␈α
(if␈α
no␈α
text␈α
line␈α
is␈α
currently␈α
active,␈α
apply␈α
to␈α
the␈α
next␈α
text␈α
line).
␈↓ ββ␈βπj␈¬βIncreasing␈¬ε␈α
q␈¬β␈α
moves␈αdown␈αthe␈αpage!␈α_Text␈αafter␈αthis␈αline␈αwill␈αbe␈αbelow␈αit
␈↓ ββ␈βλ⊂␈¬βon␈α⊂the␈α⊂page␈α⊂unless␈α⊂POX␈α⊂or␈α⊂the␈α⊂XGPSER␈α∂decides␈α∂it␈α∂is␈α∂too␈α∂close␈α∂to␈α∂the
␈↓ ββ␈βλ.␈¬βbottom␈α∞of␈α∞the␈α
page␈α
and␈α
inserts␈α
a␈α
page␈α
mark.␈α~Do␈α
not␈α
use␈α
this␈α
command
␈↓ ββ␈βλL␈¬βinside␈α∞your␈α∞EVERYPAGE␈α∞macro␈α∞(use␈α∞overlays␈α∞for␈α
all␈α
printing␈α
from␈α
inside
␈↓ ββ␈βλb␈¬βEVERYPAGE␈αmacro)␈α--␈αWARNING:␈α↔If␈¬ε␈αq␈¬β␈αis␈αvery␈αlarge␈αit␈αwill␈αprobably␈αmake
␈↓ ββ␈β	λ␈¬βthe␈α
XGP␈α
spooler␈α
go␈α
beserk.
␈↓ ↓H␈β	≡␈¬1␈¬∂y␈¬εq␈¬β␈↓ ββ(U)␈α∩--␈α∩the␈α∩simulator␈α∩maintains␈α∩two␈α∩parameters␈α∩that␈α∩tell␈α∩it␈α∩where␈α⊃the
␈↓ ββ␈β	D␈¬βbaseline␈α∂and␈α∂the␈α∂last-scanline␈α∂were␈α∂in␈α∂the␈α∂previously-emitted␈α∂text␈α∞line,
␈↓ ββ␈β	b␈¬βwhich␈α
are␈α
used␈α
by␈α
the␈α
simulator␈α
to␈α
decide␈α
where␈α
the␈α
next␈α
text␈α
line␈α
will
␈↓ ββ␈β	x␈¬βbe␈αplaced.␈α⊗This␈αcommand␈αadds␈¬ε␈αq␈¬β␈αto␈αwhatever␈αis␈α
in␈α
these␈α
two␈α
parameters
␈↓ ββ␈β
≡␈¬βat␈αthe␈αmoment,␈αthus␈αforcing␈αthe␈αnext␈αtext␈αline␈αdown␈αby␈αthat␈α
amount␈α
(up␈α
if
␈↓ ββ␈β
4␈¬εq␈¬β␈αis␈αnegative)␈αor␈αforcing␈α
it␈α
to␈α
the␈α
next␈α
page␈α
of␈α
output.␈α∀In␈α
the␈α
case␈α
where
␈↓ ββ␈β
Z␈¬βthe␈αline␈αis␈αforced␈αonto␈αthe␈αnext␈αpage,␈αit␈αwill␈αbe␈αplaced␈αexactly␈αat␈αthe␈αtop
␈↓ ββ␈β
p␈¬βmargin␈α
regardless␈α
of␈α
the␈α
size␈α
of␈¬ε␈α
q␈¬β,␈α
so␈α
this␈α
command␈αis␈αespecially␈αuseful
␈↓ ββ␈β⊗␈¬βfor␈αplacing␈αa␈αgap␈αjust␈αbefore␈αbeginning␈αa␈αnew␈αsection␈αin␈α
a␈α
document.␈α∀If␈α
a
␈↓ ββ␈β2␈¬1␈¬∂Y␈¬β␈αcommand␈αhas␈αbeen␈αdone␈αand␈αnot␈αyet␈αacted␈αupon,␈αthe␈αeffect␈αof␈α
the␈¬␈α
1␈¬∂y
␈↓ ββ␈βP␈¬βcommand␈α∃is␈α∃to␈α∀add␈α∀to␈α∀the␈¬␈α∀1␈¬∂Y␈¬β␈α∀value␈α∀instead␈α∀of␈α∀adding␈α∀to␈α∀the␈α∀two
␈↓ ββ␈βp␈¬βparameters.
␈↓ ↓H␈βε␈¬1␈¬∂B␈¬εq␈¬β␈↓ ββ(U␈αJ␈α
CR␈α
o␈α
A)␈α
--␈α
set␈α
bottom␈α
margin␈α
in␈α
POX␈α
to␈α
be␈¬ε␈α
q␈¬β␈α
(relative␈α
to␈α
top␈α
of␈α
page,
␈↓ ββ␈β,␈¬βin␈α1/200␈αinch␈αunits).␈α⊗This␈αcommand␈αonly␈αhas␈αeffect␈α
with␈α
the␈α
simulator␈α
on.
␈↓ ββ␈βJ␈¬βIf␈α
this␈α
is␈α
used␈αto␈αmake␈αlarger␈αthan␈αnormal␈αbodies␈αof␈αtext,␈αtotal␈αpage␈αsize
␈↓ ββ␈β`␈¬βmust␈α
be␈α
increased␈α
beforehand␈α
with␈α
the␈¬␈α
1␈¬∂e␈¬εq␈¬β␈α
command.
␈↓ ↓H␈β}␈¬1␈¬∂b␈¬εq␈¬β␈↓ ββ(U␈α⊃J␈α⊃CR␈α⊃o␈α⊃A)␈α⊃--␈α⊃read␈α⊃the␈α⊃current␈α⊃bottom-margin␈α⊃and␈α⊂put␈α⊂it␈α⊂in␈¬ε␈α⊂q␈¬β.␈α⊂--
␈↓ ββ␈β
$␈¬βREADONLY␈α
operand␈α
not␈α
allowed.
␈↓ ↓H␈β
:␈¬1␈¬∂T␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈αset␈αtop␈αmargin␈αin␈αPOX␈α(effective␈αonly␈αif␈αsimulator␈αis␈αon).
␈↓ ββ␈β
`␈¬βThis␈αwill␈αalways␈α
affect␈α
later␈α
pages,␈α
but␈α
will␈α
affect␈α
the␈α
current␈α
page␈α
only␈α
if
␈↓ ββ␈β
}␈¬βno␈αtext␈αhas␈αyet␈αbeen␈αemitted␈αon␈αit␈α(technically␈α
if␈α
no␈α
complete␈α
line␈α
has␈α
yet
␈↓ ββ␈β∞≤␈¬βbeen␈α
emitted␈α
on␈α
the␈α
page).
␈↓ ↓H␈β∞2␈¬1␈¬∂t␈¬εq␈¬β␈↓ ββ(U␈α
J␈α
CR␈αo␈αA)␈α--␈αread␈αcurrent␈αtop␈αmargin␈αand␈αstore␈αit␈αin␈¬ε␈αq␈¬β.␈α--␈αREADONLY
␈↓ ββ␈β∞X␈¬βoperand␈α
not␈α
allowed.
␈↓ ↓H␈β∞n␈¬1␈¬∂e␈¬εq␈¬β␈↓ ββ(U␈α
J␈αCR␈αo␈αA)␈α--␈αchange␈αtotal␈αpage␈αsize␈αto␈¬ε␈αq␈¬β␈αscanlines.␈α_If␈αthis␈αis␈αused␈αto
␈↓ ββ␈β∂∀␈¬βmake␈α⊃short␈α⊃pages,␈α⊃bottom␈α⊃margin␈α⊃must␈α⊃be␈α⊃moved␈α⊃up␈α⊃out␈α⊃of␈α⊃the␈α⊃way
␈↓ ββ␈β∂*␈¬βbeforehand␈α
by␈α
the␈¬␈α
1␈¬∂B␈¬εq␈¬β␈α
command.␈α→If␈αthe␈αvalue␈αgiven␈αis␈αzero,␈αpages␈αwill
␈↓ 	∪␈¬α 11␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 12␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ββ␈β↓H␈¬βbe␈α
of␈α
varying␈α
length,␈α
with␈α
the␈α
bottom␈α
cut␈α
being␈αjust␈αbelow␈αthe␈αlast␈αtext
␈↓ ββ␈β↓f␈¬βemitted␈αon␈αeach␈αpage.␈α_(Thus␈αyou␈αmay␈αwant␈αto␈αput␈αexplicit␈αblank␈αlines␈αat
␈↓ ββ␈βα∧␈¬βthe␈α⊃bottom␈α⊃if␈α⊃you're␈α⊃doing␈α⊂this.)␈α The␈α⊂bottom␈α⊂margin␈α⊂is␈α⊂still␈α⊂used␈α⊂for
␈↓ ββ␈βα"␈¬βdetermining␈α
when␈α
to␈α
force␈α
going␈α
to␈α
a␈α
new␈α
page.
␈↓ α_␈βα@␈¬βIMPORTANT ADDENDUM:
␈↓ ↓H␈βα↑␈¬β  ␈↓ ββThe␈α
spooler␈α
has␈αno␈αfacility␈αfor␈αdynamically␈αchanging␈αpage␈αsize.␈α_The␈αlast
␈↓ ββ␈βαz␈¬1␈¬∂e␈¬β␈α
given␈αin␈αa␈αPOX␈αsource␈αfile␈αaffects␈αthe␈αwhole␈αfile␈αby␈αsending␈αa␈αswitch
␈↓ ββ␈ββ~␈¬βto␈αthe␈αspooler.␈α↔Therefore,␈αthis␈αcommand␈αshould␈αbe␈αgiven␈αexactly␈αonce␈αat
␈↓ ββ␈ββ8␈¬βthe␈αstart␈αof␈αthe␈αPOX␈αfile,␈αto␈αavoid␈αconfusion␈αif␈αtext␈αwere␈αto␈αbe␈αgenerated
␈↓ ββ␈ββV␈¬βBELOW␈α∞the␈α∞edge␈α
of␈α
the␈α
page␈α
BEFORE␈α
POX␈α
was␈α
told␈α
of␈α
the␈α
correct␈α
page
␈↓ ββ␈ββt␈¬βsize,␈αand␈αnot␈αagain.␈α⊗(The␈αother␈αcommands,␈αsetting␈α
top␈α
and␈α
bottom␈α
margin,
␈↓ ββ␈β∧∩␈¬βmay␈α
be␈α
dynamic␈α
from␈α
page␈α
to␈α
page,␈α
if␈α
the␈α
simulator␈α
is␈α
on.)
␈↓ ↓H␈β∧L␈¬1␈¬∂s␈¬¬<CH>␈¬β␈↓ ββ(U␈α∞J␈α∞CR)␈α∞--␈α∞store␈α
current␈α
x,,y␈α
(column␈α
in␈α
left␈α
half,␈α
scanline␈α
in␈α
right␈α
half)
␈↓ ββ␈β∧l␈¬βlocation␈α∞of␈α∞cursor␈α∞(offset␈α∞by␈α∞any␈α
baseline␈α
adjust␈α
in␈α
effect)␈α
into␈α
register
␈↓ ββ␈β¬
␈¬¬<CH>␈¬β␈αas␈αsoon␈αas␈αthat␈αinformation␈αis␈αavailable␈α(in␈αjustify␈αthis␈αisn't␈αuntil␈αthe
␈↓ ββ␈β¬(␈¬βcurrent␈αline␈αhas␈αbeen␈αfinished␈αand␈αhas␈αpassed␈αthrough␈αthe␈αsimulator).␈α⊗To
␈↓ ββ␈β¬F␈¬βbe␈α
sure␈α
this␈α
information␈α
has␈α
been␈αstored␈αby␈αthe␈αtime␈αyou␈αlook␈αat␈αit,␈αput
␈↓ ββ␈β¬d␈¬βzero␈α∀in␈α∀the␈α∀register␈α∪before␈α∪you␈α∪execute␈α∪the␈α∪command␈α∪and␈α∪test␈α∪for
␈↓ ββ␈βεα␈¬βnonzero␈α
before␈α
using␈α
the␈α
data.
␈↓ ↓H␈βε≡␈¬1␈¬∂g␈¬¬<CH>␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈αget␈αsome␈αparameter␈α(as␈αdetermined␈αby␈¬¬␈α<CH>␈¬β)␈αand␈αload␈αit
␈↓ ββ␈βε>␈¬βinto␈α
the␈α
accumulator.␈α∀The␈α
following␈α
are␈α
currently␈α
implemented:
␈↓ α_␈βεT␈¬1␈¬∂ge␈¬β␈↓ αhBottom edge of paper (set by ␈¬1␈¬∂e␈¬εq␈¬β command)
␈↓ α_␈βεx␈¬1␈¬∂gλ␈¬β␈↓ αhInterline spacing (set by ␈¬1␈¬∂λ␈¬β command)
␈↓ α_␈βπ⊗␈¬1␈¬∂gε␈¬β␈↓ αhInterbase spacing (set by ␈¬1␈¬∂ε␈¬β command)
␈↓ α_␈βπ4␈¬1␈¬∂gM␈¬β␈↓ αhMode (U=1, J=2, CR=4, o=10, A=20 -- octal)
␈↓ α_␈βπR␈¬1␈¬∂g⊂␈¬β␈↓ αhUses old contents of ac (should be 0 or 1) to get special-features word
␈↓ α_␈βπp␈¬1␈¬∂gm␈¬β␈↓ αhUses old ac contents as memory address to peek in core image
␈↓ ↓H␈βλ∞␈¬1␈¬∂∃␈¬¬<CH>␈¬β␈↓ ββ(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈αget␈αdate␈αand␈αtime␈αlast-written␈αfor␈αcurrent␈αinput␈αfile␈αand
␈↓ ββ␈βλ.␈¬βput␈αit␈αinto␈αregister␈¬¬␈α<CH>␈¬β␈α
in␈α
the␈α
follwing␈α
format:␈α∀Left␈α
half␈α
is␈α
in␈α
system␈α
date
␈↓ ββ␈βλL␈¬βformat,␈α⊗i.e.␈α,((YEAR-1964)*12+(MONTH-1))*31+(DAY-1).␈α*Right␈α∃half␈α∃is
␈↓ ββ␈βλj␈¬βminutes␈α∂past␈α∂midnight,␈α∂i.e.,␈α∞HOUR*60+MINUTE.␈α≤If␈α∞this␈α∞command␈α∞is␈α∞issued
␈↓ ββ␈β	λ␈¬βfrom␈α∞the␈α∞body␈α∞of␈α∞a␈α∞macro␈α∞(or␈α∞argument)␈α∞patched␈α∞into␈α
input␈α
stream,␈α
the
␈↓ ββ␈β	&␈¬βfile␈α⊂inquired␈α∂is␈α∂the␈α∂most␈α∂recently-read␈α∂file,␈α∂which␈α∂can␈α∂be␈α∂the␈α∂file␈α∂from
␈↓ ββ␈β	D␈¬βwhich␈α
the␈α
macro␈α
was␈α
called,␈α
or␈α
some␈α
required␈α
source␈α
file␈α
that␈α
has␈α
been
␈↓ ββ␈β	b␈¬βinserted␈α
since␈α
the␈α
time␈α
the␈α
macro␈α
was␈α
started.
␈↓ ∧x␈β
≡␈¬βMISC. COMMANDS NOT OFTEN USED
␈↓ ↓H␈β
4␈¬1␈¬∂u␈¬εq␈¬β␈↓ ββ(U␈αJ␈αCR␈αo␈αA)␈α--␈αgenerates␈αand␈αexecutes␈αa␈αCALLI␈αUUO␈αusing␈αthe␈αright␈αhalf
␈↓ ββ␈β
R␈¬βof␈¬ε␈α
q␈¬β,␈α
thus␈¬␈α
1␈¬∂u'400012;␈¬β␈α
will␈α
perform␈α
a␈¬∂␈α
CALLI␈α
400012␈¬β␈α--␈αthe␈αac␈αis␈αused
␈↓ ββ␈β
x␈¬βto␈α∞supply␈α∞data␈α∞to␈α∞some␈α∞UUO's,␈α∞and␈α∞to␈α∞return␈α∞data␈α∞to␈α
the␈α
program␈α
after
␈↓ ββ␈β⊗␈¬βsome␈α
UUO'S␈α
--␈α
if␈α
the␈α
ac␈α
field␈α
of␈α
the␈αinstruction␈αis␈αused␈αin␈αa␈αspecial␈αway
␈↓ ββ␈β4␈¬βother␈α
than␈α
merely␈α
pointing␈α
to␈α
data,␈α
then␈α
it␈α
isn't␈α
guaranteed␈α
to␈α
work␈αthe
␈↓ ββ␈βR␈¬βway␈α∞you␈α∞want␈α∞--␈α∞the␈α∞.SKIP.␈α∞flag␈α∞(a␈α
la␈α
SAIL)␈α
is␈α
returned␈α
in␈α
register␈¬∂␈α
u␈¬β␈α
--
␈↓ ββ␈βp␈¬βsee␈α
the␈α
UUO␈α
manual␈α
for␈α
details.
␈↓ ↓H␈β␈¬1␈¬∂S␈¬β␈↓ ββ(U)␈α↔--␈α↔generates␈α↔a␈α⊗sample␈α⊗of␈α⊗the␈α⊗currently-selected␈α⊗font␈α⊗--␈α⊗type
␈↓ ββ␈β,␈¬∂HELP FONT␈¬β␈α
for␈α
other␈α
ways␈α
to␈α
get␈α
samples␈α
of␈α
fonts.
␈↓ β[␈βc␈¬Examples of commands using register arguments etc.
␈↓ α_␈β
∧␈¬βIn␈α⊂this␈α⊂writeup,␈α⊂the␈¬␈α⊂1␈¬∂j␈¬β␈α⊂command␈α⊂is␈α⊂used␈α⊂to␈α⊂generate␈α⊂the␈α⊂indented␈α⊂paragraph␈α∂of␈α∂description
␈↓ ↓H␈β
≤␈¬βalongside␈α⊃the␈α⊃syntax␈α⊃of␈α⊃each␈α⊃command.␈α"The␈α⊂sequence␈¬␈α⊂1␈¬∂←␈¬εq␈¬1␈¬∂→.␈¬β␈α⊂is␈α⊂used␈α⊂sometimes␈α⊂to␈α⊂set␈α⊂column
␈↓ ↓H␈β
B␈¬βposition␈α
for␈α
single-line␈α
descriptions␈α
and␈α
to␈α
align␈α
text␈α
in␈α
some␈α
of␈α
the␈α
tabular␈α
presentations.
␈↓ ↓H␈β
}␈¬∧Example showing how to do a simple subscript:
␈↓ ↓H␈β∞~␈¬1␈¬∂F3x␈¬1␈¬∂∪1␈¬1␈¬∂⊗+x␈¬1␈¬∂∪2␈¬1␈¬∂⊗+...+x␈¬1␈¬∂∪n␈¬1␈¬∂⊗+x␈¬1␈¬∂∪n+1␈¬1␈¬∂⊗
␈↓ ↓H␈β∞:␈¬βx␈↓#s1␈↓#+x␈↓#s2␈↓#+...+x␈↓#sn␈↓#+x␈↓#sn+1␈↓#
␈↓ ↓H␈β∞v␈¬∧Example of making five columns on a page, $ is the escape char:
␈↓ ↓H␈β∂∀␈¬∂$←R$-L$/'5;$→W$;␈↓ εHregister W contains width of a column
␈↓ ↓H␈β∂2␈¬∂$←L$→1$+W$→2$+W$→3$+W$→4$+W$→5$;␈↓ εHregisters 1,2,3,4,5 contain the column loc's
␈↓ 	∪␈¬α 12␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 13␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬∂$←1$→.Hello$←2$→.This$←3$→.Is$←4$→.A$←5$→.Test.
␈↓ ↓H␈β↓f␈¬∂$←1$→.These$←2$→.Columns$←3$→.Are$←4$→.Nicely$←5$→.Aligned.
␈↓ ↓H␈βα∧␈¬βHello␈↓ βNThis␈↓ ¬TIs␈↓ πZA␈↓ 	`Test.
␈↓ ↓H␈βα"␈¬βThese␈↓ βNColumns␈↓ ¬TAre␈↓ πZNicely␈↓ 	`Aligned.
␈↓ ↓H␈βα↑␈¬∧Example of hidden characters, $ is the escape char:
␈↓ ↓H␈βα|␈¬∂$FF$'0;$'11;$'12;$'14;$'15;$'177;
␈↓ ↓H␈ββ~␈¬∂␈␈	␈
␈␈
␈␈
␈↓ ↓H␈ββV␈¬∂$F1This shows a crufty way to $←.$→1underline$U1=3;=2;. a word in a line of text.
␈↓ ↓H␈ββo␈¬This shows a crufty way to underline␈↓ ∧↑␈↓!β↓β␈↓ ∧↑␈↓!∧↓β␈↓ ¬a a word in a line of text.
␈↓ ↓H␈β∧0␈¬∂$F3$J␈↓ αHThis paragraph is an example of how to insert something
␈↓ ↓H␈β∧N␈¬∂like X$←.$→1$∩n$←.$→2$←1$→.$∪i$←.$~2$→.$⊗ in the middle of a paragraph of
␈↓ ↓H␈β∧l␈¬∂justified text using the "." register that represents the current column
␈↓ ↓H␈β¬
␈¬∂$←.$→1$∩loca$←.$→2$←1$→.$↓=05;posi$←.$~2$→.$⊗tion
␈↓ ↓H␈β¬(␈¬∂relative to the beginning of the current word.$.
␈↓ α_␈β¬9␈¬βThis␈αparagraph␈αis␈αan␈αexample␈αof␈αhow␈αto␈αinsert␈αsomething␈αlike␈αX␈↓#
n␈↓#s␈αqi␈↓#␈α∪in␈αthe␈αmiddle␈αof␈αa␈α
paragraph␈α
of
␈↓ ↓H␈β¬c␈¬βjustified␈α∀text␈α∀using␈α∪the␈α∪"."␈α∪register␈α∪that␈α∪represents␈α∪the␈α∪current␈α∪column␈↓#
␈α∪loca␈↓#{␈αOposi␈↓#tion␈α∪relative␈α∪to␈α∪the
␈↓ ↓H␈βε∞␈¬βbeginning␈α
of␈α
the␈α
current␈α
word.
␈∧ε;	X␈}+Hα␈∧ε;	X↓UHα␈↓ ↓H␈βεJ␈¬∂$←=2;$→V$←;$-=100;$→A$+=27;$→B$+=45;$→C$;
␈∧εV	0αP␈∧εV	0ε≤-α␈∧εV
␈yd-α␈↓ ↓H␈βεh␈¬∂$←=1200;$→a$+=10;$→b$+=30;$→c$+=30;$→d$+=10;$→e$;
␈↓ ↓H␈βπε␈¬∂$VaBeBV$VaBdCV$VcAbCV$VcAdCV$VbCeBV$; draw 5-point star of constant width
␈∧π3	X␈}+Hα␈∧π3	X↓UHα␈↓ ↓H␈βπB␈¬∂$←=2;$→V$←;$-=100;$→A$+=27;$→B$+=45;$→C$;
␈∧πN	0αP␈∧πN	0ε≤-β␈∧πN
␈yd-β␈↓ ↓H␈βπ`␈¬∂$←=1200;$→a$+=10;$→b$+=30;$→c$+=30;$→d$+=10;$→e$;
␈↓ ↓H␈βπ}␈¬∂$vaBeBV$vaBdCV$vcAbCV$vcAdCV$vbCeBV$; draw 5-point star of constant thickness
␈↓ ↓H␈βλ:␈¬∂$←;$-=20;$→:$v=1400;;=1300;:=20;$; sample of a very ugly vector
␈∧λ]
∀∀∀e␈↓ ε␈β	A␈¬OVERLAYS
␈↓ α_␈β	d␈¬βAn␈¬α␈αoverlay␈¬β␈αis␈αlike␈αa␈αblack-on-clear␈αtransparency.␈α_Overlays␈αcan␈αbe␈αset␈αup␈αby␈αfeeding␈αthem␈αtext
␈↓ ↓H␈β
α␈¬βor␈α
vectors␈α
(someday␈α
perhaps␈α
also␈α
video␈α
and␈α
III/DD␈α
buffers),␈α
and␈αseveral␈αoverlays␈αcan␈αbe␈αplaced␈αover
␈↓ ↓H␈β
 ␈¬βone␈αanother␈αand␈αglued␈αtogether␈αto␈αmake␈αa␈αcompound␈αoverlay,␈αwhich␈αthen␈αcan␈αbe␈αfurther␈αprocessed␈αin
␈↓ ↓H␈β
>␈¬βsimilar␈α
ways.␈α∀Eventually,␈α
overlays␈α
are␈α
placed␈α
in␈α
the␈α
output␈α
file.
␈↓ α_␈β
\␈¬βAll␈αcontents␈αof␈αan␈αoverlay␈αare␈αpositioned␈αrelative␈αto␈αan␈αarbitrary␈¬α␈αbasepoint␈¬β.␈α⊗When␈αoverlays␈αare
␈↓ ↓H␈β
z␈¬βplaced␈αon␈αtop␈αof␈αeach␈αother␈αand␈αglued,␈αthe␈αx,y␈αoffset␈αof␈αthe␈αbasepoint␈αof␈αeach␈αcomponent␈αis␈αspecified
␈↓ ↓H␈β_␈¬βrelative␈αto␈αthe␈αbasepoint␈αof␈αthe␈αoperation␈αas␈αa␈αwhole,␈αthus␈αoverlays␈α
can␈α
be␈α
made␈α
to␈α
fit␈α
side-by-side␈α
or
␈↓ ↓H␈β6␈¬βabove-and-below␈α⊗or␈α⊗partially-overlapped␈α⊗or␈α⊗whatever.␈α+Defaults␈α∃are␈α∃available␈α∃in␈α∃some␈α∃of␈α∃the
␈↓ ↓H␈βT␈¬βoperations.
␈↓ α_␈βr␈¬βIn␈α∪typical␈α∪applications,␈α∪overlays␈α∪act␈α∩as␈α∩data,␈α∩and␈α∩macros␈α∩that␈α∩call␈α∩the␈α∩overlay-manipulation
␈↓ ↓H␈β⊂␈¬βcommands␈α
act␈α
as␈α
subroutines␈α
(see␈α
next␈α
section␈α
for␈α
macros).
␈↓ ↓H␈βJ␈¬1␈¬∂o␈¬¬<NAME><OPEN><CH><BODY><CLOSE>
␈↓ ↓H␈βj␈¬β  ␈↓ β↔(U␈αJ␈αCR␈αo␈αA)␈α--␈α[Note␈αthat␈αthe␈αpair␈αof␈αnesting␈αcharacters␈α(␈α
and␈α
)␈α
are␈α
not
␈↓ β↔␈β
λ␈¬βallowed␈α∃in␈α∃this␈α∃particular␈α∃syntax.␈α*The␈α∀reason␈α∀is␈α∀that␈α∀the␈α∀syntax
␈↓ β↔␈β
&␈¬¬<OPEN><CH><BODY><CLOSE>␈¬β␈α
will␈α
represent␈α
something␈α
like␈α
an␈α
atom,␈α
with␈α
"("
␈↓ β↔␈β
D␈¬βand␈α
")"␈αreserved␈αfor␈αgenerating␈αs-expressions,␈αif␈αand␈αwhen␈αI␈αimplement
␈↓ β↔␈β
b␈¬βa␈αsubset␈αof␈αLISP␈αinside␈αPOX.]␈α⊗If␈¬¬␈α<CH>␈¬β␈αis␈α
"␈¬∂V␈¬β"␈α
then␈α
define␈α
an␈α
atomic␈α
vector
␈↓ β↔␈β
x␈¬βoverlay␈α(syntax␈αis␈αsame␈αas␈αthe␈¬␈α1␈¬∂V␈¬εx␈¬β␈↓#n1␈¬εy␈¬β␈↓#n1␈¬εx␈¬β␈↓#n2␈¬εy␈¬β␈↓#n2␈¬εw␈¬β␈αcommand␈αwithout␈αthe
␈↓ β↔␈β∞"␈¬βinitial␈¬␈α1␈¬β␈αcharacter,␈αeffect␈α(semantics)␈αis␈αthe␈αsame␈αexcept␈αthat␈α(0,0)␈αis␈αat
␈↓ β↔␈β∞B␈¬βthe␈α∂relocatable␈α∂basepoint␈α∂rather␈α∂than␈α∂at␈α∞the␈α∞upper-left␈α∞corner␈α∞of␈α∞the
␈↓ β↔␈β∞`␈¬βoutput␈α⊃page)␈α⊃else␈α⊃if␈¬¬␈α⊃<CH>␈¬β␈α⊃is␈α⊃a␈α⊃period␈α⊃or␈α⊂a␈α⊂font␈α⊂number␈α⊂then␈α⊂define
␈↓ β↔␈β∞}␈¬βatomic␈αtext␈αoverlay␈αwith␈αthe␈αcurrent␈αfont␈αor␈αwith␈αfont␈¬¬␈α<CH>␈¬β␈αrespectively
␈↓ β↔␈β∂≤␈¬β(the␈α∂basepoint␈α∂is␈α∂set␈α∂at␈α∂the␈α∂intersection␈α∂of␈α∂the␈α∂left␈α∂edge␈α∂of␈α∞the␈α∞first
␈↓ β↔␈β∂:␈¬βcharacter␈α∂with␈α∂the␈α∂font␈α∂baseline)␈α∂else␈α∂error␈α∂--␈α∂If␈α∂there␈α∞is␈α∞already␈α∞an
␈↓ 	∪␈¬α 13␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 14␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ β↔␈β↓H␈¬βoverlay␈α
by␈α
the␈α
same␈α
name,␈αthe␈αold␈αone␈αmay␈αor␈αmay␈αnot␈αbe␈αdeleted,␈αso
␈↓ β↔␈β↓f␈¬βbeware.
␈↓ ↓H␈βαα␈¬1␈¬¬n<NAME>␈¬∂;␈¬β␈↓ β↔(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
load␈α
parameter␈¬¬␈α
n␈¬β␈α
of␈α
overlay␈α
into␈α
ac,␈α
see␈αthe␈αfollowing
␈↓ β↔␈βα"␈¬βtable:
␈↓ αH␈βα@␈¬¬n␈¬∂␈↓ βHname␈¬β␈↓ ∧Hmeaning (all quantities are usually nonnegative)
␈↓ αH␈βα↑␈¬∂1␈↓ βHLLIM␈¬β␈↓ ∧Hdistance from left edge to basepoint
␈↓ αH␈βα|␈¬∂2␈↓ βHRLIM␈¬β␈↓ ∧Hdistance from basepoint to right edge  (LLIM+1+RLIM = total width)
␈↓ αH␈ββ~␈¬∂3␈↓ βHTLIM␈¬β␈↓ ∧Hdistance from top edge to basepoint
␈↓ αH␈ββ8␈¬∂4␈↓ βHBLIM␈¬β␈↓ ∧Hdistance from basepoint to bottom edge  (TLIM+1+BLIM = total height)
␈↓ αH␈ββV␈¬∂5␈↓ βHTLIM1␈¬β␈↓ ∧Hdistance from top nonblank scan line to basepoint (see bug 2)
␈↓ αH␈ββt␈¬∂6␈↓ βHBLIM1␈¬β␈↓ ∧Hdistance from basepoint to bottom nonblank scan line (see bug 2)
␈↓ αH␈β∧⊂␈¬∂7␈↓ βHRMOVE␈¬β␈↓ ∧Hsame as RLIM initially, used by ␈¬1␈¬∂H␈¬β command
␈↓ ↓H␈β∧0␈¬β  ␈↓ β↔Note␈α⊃that␈α⊃TLIM1␈α⊃and␈α⊃BLIM1␈α⊃are␈α⊂currently␈α⊂unsupported␈α⊂because␈α⊂they
␈↓ β↔␈β∧N␈¬βhaven't␈α
yet␈α
been␈α
made␈α
to␈α
work␈α
correctly.
␈↓ ↓H␈β∧j␈¬1␈¬∂:␈¬¬n<NAME>␈¬∂;␈¬β␈↓ β↔(U␈α∂J␈α∂CR␈α∂o␈α∂A)␈α∂--␈α∂clobber␈α∂parameter␈¬¬␈α∂n␈¬β␈α∞of␈α∞overlay␈α∞from␈α∞contents␈α∞of␈α∞ac,
␈↓ β↔␈β¬λ␈¬βthereby␈α⊃making␈α⊃it␈α⊃"lie"␈α⊃if␈α⊃this␈α⊃parameter␈α⊃is␈α⊂later␈α⊂queried␈α⊂by␈α⊂the␈¬␈α⊂1␈¬¬n
␈↓ β↔␈β¬(␈¬βcommand␈α∂(occasionally␈α∂useful␈α∞to␈α∞interface␈α∞with␈α∞macros);␈α∞only␈α∞the␈α∞right
␈↓ β↔␈β¬F␈¬βhalfword␈α∂is␈α∂used,␈α∂interpreted␈α∂as␈α∂a␈α∂signed-halfword␈α∂in␈α∂2's␈α∞complement
␈↓ β↔␈β¬d␈¬βnotation.
␈↓ ↓H␈β¬z␈¬1␈¬∂&␈¬¬<NAME_OF_RESULT>␈¬∂←␈¬¬<NAME␈↓#v1␈↓#>␈¬∂,␈¬εx␈¬¬␈↓#v1␈¬εy␈¬¬␈↓#v1␈¬∂&␈¬¬<NAME␈↓#v2␈↓#>␈¬∂,␈¬εx␈¬¬␈↓#v2␈¬εy␈¬¬␈↓#v2␈¬∂&␈¬¬...␈¬∂&␈¬¬<NAME␈↓#vn␈↓#>␈¬∂,␈¬εx␈¬¬␈↓#vn␈¬εy␈¬¬␈↓#vn␈¬∂;
␈↓ ↓H␈βε ␈¬β  ␈↓ β↔(U␈αJ␈αCR␈αo␈αA)␈α--␈αcombine␈αoverlays␈αby␈αlaying␈αthem␈αat␈αvarious␈αoffsets␈αand
␈↓ β↔␈βε1␈¬βgluing␈α
them␈α
together␈α
to␈α
make␈α
a␈α
composite␈α
overlay␈α
--␈α
for␈α
i=1,2,..,n␈α
the␈α
i␈↓#
th␈↓#
␈↓ β↔␈βεT␈¬βcomponent␈αoverlay␈αis␈αshifted␈αso␈αthat␈αits␈αbase␈αpoint␈αis␈αlocated␈αat␈α(␈¬εx␈¬β␈↓#si␈↓#,␈¬εy␈¬β␈↓#si␈↓#)
␈↓ β↔␈βεz␈¬βrelative␈αto␈α
the␈α
logical␈α
basepoint␈α
of␈α
the␈α
resultant␈α
overlay␈α
(positive␈α
x␈α
is␈α
to
␈↓ β↔␈βπ_␈¬βthe␈α
right,␈α
positive␈α
y␈α
is␈α
down)␈α--␈αthe␈αfirst␈αsix␈αparameters␈αare␈αcomputed
␈↓ β↔␈βπ6␈¬βaccording␈α∃to␈α∃the␈α∃offsets␈α∀and␈α∀parameters␈α∀of␈α∀the␈α∀components,␈α∀what
␈↓ β↔␈βπT␈¬βhappens␈α⊂to␈α⊂RMOVE␈α⊂is␈α⊂currently␈α⊂unsupported␈α⊂--␈α⊂if␈α⊂you␈α⊂leave␈α∂out␈α∂the
␈↓ β↔␈βπr␈¬βcomma␈α⊗and␈α⊗xy␈α⊗arguments␈α⊗from␈α⊗any␈α⊗component,␈α∃it␈α∃will␈α∃place␈α∃that
␈↓ β↔␈βλ⊂␈¬βcomponent␈αjust␈αto␈αthe␈αright␈αof␈αwhat␈αis␈αalready␈αprepared,␈αand␈αuse␈α0␈αfor
␈↓ β↔␈βλ.␈¬βthe␈α
y-offset.
␈↓ ↓H␈βλD␈¬1␈¬∂O␈¬¬<NAME>␈¬∂,␈¬εxy
␈↓ ↓H␈βλb␈¬1␈¬∂W␈¬¬<NAME>␈¬∂,␈¬εxy
␈↓ ↓H␈β	ε␈¬1␈¬∂O␈¬¬<NAME>␈¬∂;␈¬β␈↓ β↔(U)␈α--␈αoutput␈αoverlay␈αto␈αXGP,␈αwith␈αbasepoint␈αmoved␈αto␈α
absolute␈α
location
␈↓ β↔␈β	≡␈¬β(␈¬εx␈¬β,␈¬εy␈¬β)␈α--␈αyou␈αcan␈αoutput␈αan␈αoverlay␈α
randomly␈α
anywhere␈α
on␈α
the␈α
page,␈α
or
␈↓ β↔␈β	<␈¬βyou␈α⊗can␈α⊗replace␈α⊗the␈α⊗"␈¬∂,␈¬εxy␈¬β"␈α⊗by␈α⊗"␈¬∂;␈¬β"␈α⊗(see␈α⊗syntax,␈α⊗at␈α⊗left␈α⊗of␈α⊗this
␈↓ β↔␈β	b␈¬βparagraph)␈α⊂to␈α⊂get␈α⊂the␈α∂Gosper-requested␈α∂default␈α∂for␈α∂which␈α∂no␈α∂special
␈↓ β↔␈β
␈¬βclaim␈α⊂is␈α⊂made,␈α⊂except␈α⊂to␈α⊂say␈α⊂that␈α⊂the␈α⊂overlay␈α∂is␈α∂placed␈α∂"just␈α∂below"
␈↓ β↔␈β
≡␈¬βwhere␈α
you␈α
were␈α
writing␈α
plain␈α
text␈αpreviously␈α--␈αBecause␈αtext␈αmust␈αbe
␈↓ β↔␈β
<␈¬βpresented␈α⊂in␈α⊂ascending␈α⊂Y-sequence␈α⊂to␈α∂the␈α∂XGP,␈α∂you␈α∂must␈α∂enable␈α∂the
␈↓ β↔␈β
Z␈¬βsimulator␈α⊃(see␈α⊃note␈α⊃2)␈α⊂whenever␈α⊂you␈α⊂place␈α⊂ordinary␈α⊂text␈α⊂below␈α⊂any
␈↓ β↔␈β
x␈¬βoverlay␈α∪on␈α∪the␈α∪same␈α∪page.␈α&--␈α∪ADDENDA␈α∪1975.JUL-AUG␈α∩--␈α∩At␈α∩the
␈↓ β↔␈β⊗␈¬βinsistence␈α∂of␈α∂Ralph␈α∂Gorin,␈α∂the␈α∂default␈α∂way␈α∂these␈α∞commands␈α∞work␈α∞is␈α∞a
␈↓ β↔␈β4␈¬βcomplicated␈α∞illogical␈α∞mess␈α∞that␈α∞happened␈α∞to␈α∞be␈α∞implemented␈α∞for␈α∞a␈α∞few
␈↓ β↔␈βR␈¬βdays␈α∞in␈α∞July.␈α≤If␈α∞you␈α∞have␈α∞the␈α∞'200000␈α∞bit␈α∞on,␈α∞as␈α∞I␈α∞recommend␈α∞for␈α
all
␈↓ β↔␈βn␈¬βnew␈α⊃files,␈α⊃the␈α⊃following␈α⊂more␈α⊂reasonable␈α⊂thing␈α⊂happens:␈¬␈α 1␈¬∂O␈¬β␈α⊂always
␈↓ β↔␈β∞␈¬βaffects␈α∞your␈α∞page␈α
printer,␈α
and␈α
register␈¬∂␈α
;␈¬β␈α
if␈α
the␈α
simulator␈α
is␈α
on,␈α
and␈α
is
␈↓ β↔␈β,␈¬βsupposed␈α
to␈α
be␈α
used␈α
for␈α
displays␈α
that␈α
occur␈α
in␈α
the␈α
middle␈α
of␈α
text,␈αnot
␈↓ β↔␈βH␈¬βpage␈αheaders/footings.␈¬␈α_1␈¬∂W␈¬β␈αnever␈αaffects␈αyour␈αpage␈αprinter␈αor␈αregister
␈↓ β↔␈βh␈¬∂;␈¬β␈α∂and␈α∂is␈α∂useful␈α∂for␈α∞headings/footings,␈α∞especially␈α∞from␈α∞the␈α∞EVERYPAGE
␈↓ β↔␈β
∧␈¬βmacro␈αfeature.␈α_The␈αfollowing␈αother␈αdifferences␈αexist:␈α⊗the␈¬␈α1␈¬∂W␈¬β␈αcommand
␈↓ β↔␈β
$␈¬βwill␈αforce␈αthe␈αoverlay␈αto␈αbe␈αon␈αthe␈αsame␈αpage,␈αeven␈αif␈αit␈αis␈αoutside␈αthe
␈↓ β↔␈β
@␈¬βnormal␈α∂page␈α∂margins,␈α∂whereas␈α∂the␈¬␈α∂1␈¬∂O␈¬β␈α∂command␈α∞will␈α∞warn␈α∞you␈α∞if␈α∞it␈α∞is
␈↓ β↔␈β
`␈¬βbelow␈α⊃the␈α⊃bottom␈α⊃of␈α⊃the␈α⊃page,␈α⊃or␈α⊂if␈α⊂VERPAG␈α⊂is␈α⊂on␈α⊂(see␈α⊂the␈α⊂special
␈↓ β↔␈β
}␈¬βfeatures␈α
section)␈α
it␈α
will␈α
be␈α
placed␈α
on␈α
the␈α
next␈α
page␈α
automatically.
␈↓ ↓H␈β∞~␈¬1␈¬∂H␈¬¬<NAME>␈¬∂;␈¬β␈↓ β↔(U␈αJ␈α
CR␈α
o)␈α
--␈α
output␈α
overlay␈α
to␈α
XGP␈α
as␈α
if␈α
it␈α
were␈α
a␈α
large␈α
character,␈α
right
␈↓ β↔␈β∞:␈¬β"here"␈α∂in␈α∂context,␈α∂including␈α∞any␈α∞baseline␈α∞offset␈α∞that␈α∞may␈α∞be␈α∞in␈α∞effect.
␈↓ β↔␈β∞X␈¬βNo␈αside-effects␈αoccur␈αexcept␈αmoving␈αthe␈αcolumn␈αcounter␈αto␈αthe␈αright␈αby
␈↓ β↔␈β∞v␈¬βthe␈α⊂amount␈α⊂of␈α⊂parameter␈α∂7␈α∂(RMOVE)␈α∂of␈α∂the␈α∂overlay␈α∂--␈α∂note␈α∂that␈α∂left
␈↓ β↔␈β∂∀␈¬βkern␈αcan␈αbe␈αobtained␈αby␈αoffsetting␈α
the␈α
entire␈α
overlay␈α
so␈α
that␈α
parameter
␈↓ β↔␈β∂2␈¬β1␈αis␈αnonzero,␈αand␈αright-kern␈αcan␈αbe␈αobtained␈αby␈αmodifying␈αparameter␈α7
␈↓ 	∪␈¬α 14␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 15␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ β↔␈β↓H␈¬βto␈α
be␈α
different␈α
from␈α
parameter␈α
2.
␈↓ ↓H␈β↓d␈¬1␈¬∂∂␈¬¬<NEW_NAME>␈¬∂←␈¬¬<OLD_NAME>␈¬∂;
␈↓ ↓H␈βα∧␈¬β  ␈↓ β↔(U␈αJ␈αCR␈αo␈αA)␈α--␈αrename␈αoverlay␈αor␈αmacro␈α
--␈α
if␈α
resultant␈α
name␈α
is␈α
the␈α
null
␈↓ β↔␈βα"␈¬βstring␈α
then␈α
delete␈α
rather␈α
than␈α
rename␈α
--␈α
It␈α
is␈α
probably␈αa␈αgood␈αidea␈αto
␈↓ β↔␈βα@␈¬βdelete␈αany␈αobsolete␈αoverlays␈αor␈αmacros␈αto␈αsave␈αcore␈α--␈αThe␈αonly␈αother
␈↓ β↔␈βα↑␈¬βmajor␈α∩reason␈α∩for␈α⊃using␈α⊃this␈α⊃command␈α⊃now␈α⊃is␈α⊃to␈α⊃temporarily␈α⊃rename
␈↓ β↔␈βα|␈¬βsomething␈α∪so␈α∪that␈α∪it␈α∩can␈α∩be␈α∩temporarily␈α∩redefined,␈α∩then␈α∩delete␈α∩the
␈↓ β↔␈ββ~␈¬βtemporary␈α⊂definition␈α⊂and␈α⊂rename␈α⊂the␈α⊂permanent␈α∂definition␈α∂back␈α∂again
␈↓ β↔␈ββ8␈¬βwhen␈αdone.␈α--␈αThe␈αrename␈αalgorithm␈αcurrently␈αis␈αas␈αfollows:␈α⊗Do␈αall␈αthe
␈↓ β↔␈ββV␈¬βfollowing,␈αfirst␈αfor␈αoverlays,␈αthen␈αif␈αthat␈αfalls␈αthru,␈αfor␈αmacros:␈α(1)␈αstart
␈↓ β↔␈ββt␈¬βat␈αthe␈αtop␈αof␈αlist␈αof␈αdefinitions,␈αi.e.␈α⊗most␈αrecently-defined␈α
item;␈α
(2)␈α
if␈α
its
␈↓ β↔␈β∧∩␈¬βname␈α
equals␈¬¬␈α
<OLD>␈¬β␈α
then␈α
clobber␈α
its␈α
retrieval␈α
name␈α
to␈¬¬␈α<NEW>␈¬β␈αand␈αreturn
␈↓ β↔␈β∧0␈¬βfrom␈α∞the␈α∞Do␈α∞loop,␈α∞else␈α∞if␈α
its␈α
name␈α
equals␈¬¬␈α
<NEW>␈¬β␈α
then␈α
delete␈α
it␈α
and␈α
fall
␈↓ β↔␈β∧N␈¬βthrough␈α∞to␈α∞3,␈α
else␈α
do␈α
nothing␈α
and␈α
fall␈α
through␈α
to␈α
3;␈α
(3)␈α
move␈α
down␈α
to
␈↓ β↔␈β∧l␈¬βnext␈α∩older␈α∩item␈α⊃in␈α⊃the␈α⊃list;␈α⊃(4)␈α⊃go␈α⊃to␈α⊃2.␈α⊃--␈α⊃Thus␈α⊃it␈α⊃is␈α⊃possible␈α⊃that
␈↓ β↔␈β¬
␈¬βrenaming␈α⊂the␈α⊂latest␈α⊂version␈α⊂of␈α⊂a␈α∂twice-defined␈α∂overlay␈α∂or␈α∂macro␈α∂will
␈↓ β↔␈β¬(␈¬βunmask␈α∞the␈α∞older␈α∞version.␈α≤Don't␈α
rely␈α
on␈α
this,␈α
it␈α
depends␈α
too␈α
much␈α
on
␈↓ β↔␈β¬F␈¬βthe␈α
structure␈αof␈αthe␈αtables␈αof␈αdefinitions,␈αand␈αis␈αlikely␈αto␈αchange␈αin␈αthe
␈↓ β↔␈β¬d␈¬βnear␈α
future␈α
without␈α
warning!
␈↓ ¬
␈βε≠␈¬Examples of use of overlays
␈↓ ↓H␈βε>␈¬∂$oNUM[1-b+SQRT(b$↑=10;2$⊗-4ac)]$;  set up the numerator
␈↓ ↓H␈βε\␈¬∂$oDEN[12a]$←=0;$→0$; set up the denominator and a useful register
␈↓ ↓H␈βεz␈¬∂$; NOTE -- The algorithm as presented here only works when NUM is wider than DEN
␈↓ ↓H␈βπ_␈¬∂$1NUM;$→X$2NUM;$+X$→A$; set up x offset, compute size of numerator
␈↓ ↓H␈βπ6␈¬∂$oBAR[V00A0=2;]$; set up a fraction bar the correct length for numerator
␈↓ ↓H␈βπT␈¬∂$4NUM;$+=3;$¬0$→Y$3DEN;$+=5;$→y$; compute y offsets
␈↓ ↓H␈βπr␈¬∂$1DEN;$→1$2DEN;$¬1$+A$/=2;$→x$; compute x offset
␈↓ ↓H␈βλ⊂␈¬∂$&FRAC←NUM,XY&DEN,xy&BAR,00;$; make fraction a composite overlay
␈↓ 	j␈βλ∃␈¬-b+SQRT(b␈↓#
2␈↓#-4ac)
␈↓ ↓H␈βλ.␈¬∂$2FRAC;$¬R$→X$4FRAC;$¬;$→Y$OFRAC,XY$; output overlay rightified
␈∧λA	jα↓|␈↓ 
W␈βλF␈¬2a
␈↓ α_␈β	
␈¬βHere's␈αa␈αuseful␈αhack␈αusing␈αoverlays.␈α_Suppose␈αyou␈αwant␈αto␈αfind␈αout␈αhow␈αwide␈αa␈αstring␈αof␈αtext␈αis
␈↓ ↓H␈β	+␈¬βin␈α⊂a␈α⊂particular␈α⊂font␈α⊂(or␈α⊂combination␈α⊂of␈α⊂fonts).␈α≡You␈α∂can␈α∂create␈α∂an␈α∂overlay,␈α∂measure␈α∂its␈α∂parameters
␈↓ ↓H␈β	I␈¬β(1,2,3,4),␈αthen␈αdelete␈αit␈αright␈αaway␈αto␈αreclaim␈αthe␈αspace␈αused␈αby␈αthe␈αoverlay␈α
that␈α
you␈α
won't␈α
actually␈α
be
␈↓ ↓H␈β	g␈¬βusing␈α
as␈α
an␈α
overlay.
␈↓ β⊃␈β
≡␈¬MACROS (WITHOUT ARGUMENTS) AND REQUIRE SOURCE FILES
␈↓ α_␈β
A␈¬βAll␈αinput␈αto␈αthe␈αPOX␈αtext␈αprocessor␈αpasses␈αthrough␈αa␈αpre-processor␈αwhich␈αinserts␈αmacro␈αbodies,
␈↓ ↓H␈β
←␈¬βarguments␈α∞to␈α∞macros,␈α∞and␈α∞requested␈α∞source␈α∞files␈α∞in␈α∞the␈α∞middle␈α∞of␈α∞the␈α∞input␈α∞stream␈α∞according␈α
to␈α
the
␈↓ ↓H␈β
⎇␈¬βfollowing␈α
commands:
␈↓ ↓H␈β→␈¬1␈¬∂∞␈¬¬<NAME><OPEN><BODY><CLOSE>
␈↓ ↓H␈β9␈¬β  ␈↓ β↔(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
define␈α
a␈α
macro␈α
for␈α
use␈α
later␈α
--␈α
note␈α
that␈α
in␈α
names␈αof
␈↓ β↔␈βW␈¬βmacros,␈αjust␈αlike␈αalmost␈αeverywhere␈αelse,␈αlower␈αcase␈αis␈αnot␈αthe␈αsame␈αas
␈↓ β↔␈βu␈¬βupper␈α⊂case,␈α⊂thus␈¬∂␈α∂foo␈α∂Foo␈α∂fOO␈α∂FOO␈α∂fOo␈α∂foO␈α∂FoO␈¬β␈α∂and␈¬∂␈α∂FOo␈¬β␈α∂are␈α∂eight
␈↓ β↔␈β∞␈¬βdifferent␈α∪names␈α∪--␈α∪also,␈α∩the␈¬¬␈α∩<BODY>␈¬␈α∩is␈α∩not␈α∩evaluated␈α∩during␈α∩this
␈↓ β↔␈β,␈¬definition␈α∩phase␈¬β,␈α∩i.e.,␈α∩the␈α∩escape␈α∩character␈α∩and␈α∩anything␈α∩else␈α⊃may
␈↓ β↔␈βO␈¬βoccur␈α∞in␈α∞the␈α∞body,␈α
nothing␈α
special␈α
happens␈α
as␈α
the␈α
escape␈α
character␈α
is
␈↓ β↔␈βm␈¬βcopied␈α∩into␈α∩the␈α∩macro,␈α⊃escape␈α⊃only␈α⊃occurs␈α⊃later␈α⊃when␈α⊃the␈α⊃macro␈α⊃is
␈↓ β↔␈β
␈¬βactually␈α⊂called,␈α⊂resulting␈α⊂in␈α⊂the␈α∂escape␈α∂character␈α∂and␈α∂everything␈α∂else
␈↓ β↔␈β
)␈¬βgetting␈α
stuffed␈α
into␈α
the␈α
input␈α
stream.
␈↓ ↓H␈β
E␈¬1␈¬∂!␈¬¬<NAME>␈¬∂;␈¬β␈↓ β↔(U␈αJ␈αCR␈αo␈αA)␈α--␈αcall␈αa␈αmacro,␈αi.e.,␈αinsert␈αbody␈αfrom␈αdefinition␈αright␈αhere
␈↓ β↔␈β
e␈¬βin␈αinput␈αstream,␈αhence␈αoccurrences␈αof␈αthe␈αescape␈αcharacter␈αin␈αthe␈αbody
␈↓ β↔␈β∞β␈¬βwill␈α
cause␈α
things␈α
to␈α
occur␈α
now␈α
(see␈α
note␈α
1␈α
also).
␈↓ ↓H␈β∞∨␈¬1␈¬∂?␈¬¬<NAME>␈¬∂;␈¬β␈↓ β↔(U␈α∪J␈α∩CR␈α∩o␈α∩A)␈α∩--␈α∩"conditional␈α∩macro"␈α∩--␈α∩same␈α∩syntax␈α∩as␈α∩above␈α∩but
␈↓ β↔␈β∞?␈¬βgenerate␈α
nothing␈α
unless␈α
accumulator␈α
is␈α
positive␈α
(see␈α
note␈α
3).
␈↓ ↓H␈β∞[␈¬1␈¬∂I␈¬¬<NAME>␈¬∂;␈¬β␈↓ β↔(U␈α∞J␈α∞CR␈α∞o␈α∞A)␈α∞--␈α∞"iterate␈α∞macro",␈α∞same␈α
as␈¬␈α
1␈¬∂?␈¬¬<NAME>␈¬∂;␈¬β␈α
except␈α
that␈α
after
␈↓ β↔␈β∞{␈¬βcompleting␈α∃the␈α∃first␈α∃read-back␈α∃of␈α∃the␈α∃body,␈α∃if␈α∀the␈α∀accumulator␈α∀is
␈↓ β↔␈β∂→␈¬βpositive␈α∂it␈α∂goes␈α∂back␈α∂to␈α∂the␈α∂beginning␈α∂and␈α∂reads␈α∞it␈α∞again,␈α∞etc.␈α∞--␈α∞the
␈↓ β↔␈β∂7␈¬βeffect␈α
is␈α
the␈α
same␈α
as␈α
in␈α
SAIL␈α
executing␈α
"␈¬∂WHILE␈¬¬␈α
ac␈¬∂>0␈α
DO␈¬¬␈α
<call␈α
macro>␈¬β".
␈↓ 	∪␈¬α 15␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 16␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓d␈¬1␈¬∂@␈¬¬<FILNAM>␈¬∂;␈¬β␈↓ β↔(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
insert␈α
source␈α
file␈α
here,␈α
then␈α
return␈α
to␈α
current␈α
file.
␈↓ ↓H␈βαα␈¬1␈¬∂α␈¬¬<FILNAM>␈¬∂;␈¬β␈↓ β↔(U)␈α∞--␈α
insert␈α
source␈α
file␈α
here␈α
but␈α
don't␈α
come␈α
back␈α
here␈α
--␈α
the␈α
rest␈α
of
␈↓ β↔␈βα"␈¬βthis␈α
file,␈α
and␈α
any␈α
files␈α
that␈α
called␈α
it,␈α
are␈α
not␈α
processed.
␈↓ ↓H␈βα>␈¬1␈¬∂∀␈¬¬<FILNAM>␈¬∂;␈¬¬<LIST OF DESIRED MACRO NAMES>␈¬∂;
␈↓ ↓H␈βα↑␈¬β  ␈↓ β↔(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
scan␈α
source␈α
file␈α
that␈α
contains␈α
macro␈α
definitions␈α
(see␈α
next
␈↓ β↔␈βα|␈¬βsection␈αon␈αmacros␈αwith␈αarguments,␈αas␈αwell␈αas␈αthis␈αsection,␈αfor␈αdetails␈αon
␈↓ β↔␈ββ~␈¬βthe␈α∞macro␈α∞definitions␈α∞themselves).␈α≤At␈α∞present,␈α∞the␈α
file␈α
must␈α
contain␈α
a
␈↓ β↔␈ββ8␈¬βTV/E␈α
directory␈α
to␈αavoid␈αa␈αbug␈αin␈αPOX.␈α_Nothing␈αin␈αthe␈αfile␈αis␈αprocessed
␈↓ β↔␈ββV␈¬βunless␈α
it␈α
simultaneously␈α
satisfies␈α
these␈α
conditions:␈α~(1)␈αIt␈αbegins␈αwith␈αa
␈↓ β↔␈ββt␈¬βbrick␈αcharacter␈αin␈αcolumn␈α1␈αof␈αthe␈αfile,␈αi.e.,␈αimmediately␈αafter␈αa␈αlinefeed;
␈↓ β↔␈β∧∩␈¬β(2)␈α
It␈α
has␈α
either␈α
a␈¬∂␈α
∞␈¬β␈α
or␈¬∂␈α
8␈¬β␈α
in␈α
column␈α
2,␈α
i.e.,␈α
it␈α
is␈αa␈αcommand␈αto␈αdefine␈αa
␈↓ β↔␈β∧.␈¬βmacro;␈α⊂(3)␈α⊂The␈α⊂name␈α⊂of␈α⊂the␈α⊂macro␈α⊂(in␈α⊂the␈¬␈α∂1␈¬∂∞␈¬β␈α∂or␈¬␈α∂1␈¬∂8␈¬β␈α∂command␈α∂being
␈↓ β↔␈β∧N␈¬βtested)␈α∂is␈α∂a␈α∂member␈α∂of␈¬¬␈α∂<LIST␈α∞OF␈α∞DESIRED␈α∞MACRO␈α∞NAMES>␈¬β␈α∞that␈α∞has␈α∞not␈α∞yet
␈↓ β↔␈β∧j␈¬βbeen␈α
used.␈α~In␈α
particular,␈¬␈α
1␈¬∂|␈¬β␈α
commands␈α
are␈α
not␈αprocessed,␈αso␈αthat␈αthe
␈↓ β↔␈β¬
␈¬βentire␈α⊗library␈α⊗must␈α⊗use␈α⊗the␈α⊗same␈α⊗brick␈α⊗character,␈α⊗and␈α∃this␈α∃brick
␈↓ β↔␈β¬&␈¬βcharacter␈αmust␈αbe␈αset␈αup␈αbefore␈αissuing␈αthe␈¬␈α1␈¬∂∀␈¬β␈αcommand.␈α∀Also,␈¬␈α
1␈¬∂⊂␈¬β␈α
etc.
␈↓ β↔␈β¬F␈¬βcommands␈αare␈αnot␈αprocessed,␈αso␈αthat␈αall␈αbits␈αneeded␈αfor␈αcorrect␈αloading
␈↓ β↔␈β¬d␈¬βof␈α∀macros,␈α∀namely␈α∀VERREM='40,␈α∀VERRHT='400␈α∪and␈α∪VERESC='100000,
␈↓ β↔␈βε␈¬βmust␈α∩be␈α∩in␈α∩the␈α∩proper␈α∩state␈α∩before␈α∩issuing␈α∩the␈¬␈α∩1␈¬∂∀␈¬β␈α⊃command.␈α"For
␈↓ β↔␈βε ␈¬βdocumentation␈αpurposes,␈αany␈αlibrary␈αof␈αPOX␈αmacros␈αshould␈αbegin␈αwith␈αa
␈↓ β↔␈βε<␈¬βcomment␈α
(or␈α
a␈¬␈α
1␈¬∂⊂␈¬␈α1␈¬∂⊃␈¬β␈αcommand␈αpair)␈αthat␈αreminds␈αusers␈αof␈αthe␈αcorrect
␈↓ β↔␈βε\␈¬βstates␈α
of␈α
these␈α
special-feature␈α
flags.␈α∀--␈α
Example:
␈↓ β7␈βεx␈¬1␈¬∂∀REMLIB.POX[1,REM];DATIME,PAGENUMS,SUB,SUP,PAGENUMS;
␈↓ ↓H␈βπ_␈¬β  ␈↓ β↔This␈α⊗loads␈α⊗the␈α⊗second-occurring␈α⊗version␈α⊗of␈α∃PAGENUMS␈α∃on␈α∃top␈α∃of
␈↓ β↔␈βπ6␈¬β(replacing)␈α⊃the␈α⊃first,␈α⊂and␈α⊂loads␈α⊂only␈α⊂the␈α⊂first␈α⊂version␈α⊂of␈α⊂each␈α⊂of␈α⊂the
␈↓ β↔␈βπT␈¬βother␈αmacros.␈α⊗It␈αis␈αprobably␈αpreferable␈αto␈αuse␈α
"fully-catalogued"␈α
names
␈↓ β↔␈βπr␈¬βrather␈α∪than␈α∪have␈α∩several␈α∩different␈α∩macros␈α∩by␈α∩the␈α∩same,␈α∩then␈α∩after
␈↓ β↔␈βλ∞␈¬βloading␈α⊃to␈α⊃rename␈α⊃each␈α⊂macro␈α⊂(using␈α⊂the␈¬␈α⊂1␈¬∂∂␈¬β␈α⊂command)␈α⊂to␈α⊂a␈α⊂shorter
␈↓ β↔␈βλ.␈¬βname␈α
that␈α
will␈α
be␈α
used␈α
locally.
␈↓ ↓H␈βλJ␈¬1␈¬∂β␈¬¬<FILNAM>␈¬∂;␈¬β␈↓ β↔(U␈αJ␈αCR␈αo␈αA)␈α--␈αlookup␈αfile␈αbut␈αdon't␈αread␈αany␈αof␈αit.␈α⊗If␈αthe␈αfile␈αdoes␈αnot
␈↓ β↔␈βλj␈¬βexist␈α⊃then␈α⊃type␈α⊃the␈α⊃name␈α⊃of␈α⊂the␈α⊂file␈α⊂on␈α⊂the␈α⊂TTY␈α⊂and␈α⊂increment␈α⊂the
␈↓ β↔␈β	λ␈¬βcontents␈αof␈αthe␈αac.␈α_Do␈αnot␈αin␈αany␈αcase␈αgenerate␈αan␈αerror␈αor␈αotherwise
␈↓ β↔␈β	&␈¬βaffect␈αthe␈αstate␈αof␈αthe␈αtext␈αcompilation␈αin␈αprogress.␈α∃Useful␈α
for␈α
checking
␈↓ β↔␈β	D␈¬βall␈α∞the␈α∞required␈α∞source␈α∞files␈α∞at␈α∞the␈α∞beginning␈α∞of␈α∞a␈α∞long␈α∞compilation␈α∞to
␈↓ β↔␈β	b␈¬βsave␈α
time␈α
if␈α
several␈αfiles␈αto␈αbe␈αcalled␈αlater␈αare␈αmissing␈αand␈αneed␈αto␈αbe
␈↓ β↔␈β
␈¬βrestored.␈α≡A␈α∂useful␈α∂technique␈α∂is␈α∂to␈α∂set␈α∂the␈α∂accumulator␈α∞to␈α∞zero,␈α∞then
␈↓ β↔␈β
≤␈¬βperform␈αone␈¬␈α1␈¬∂β␈¬β␈αcommand␈αfor␈αeach␈αsource␈αfile␈αthat␈αwill␈αlater␈αbe␈α
needed,
␈↓ β↔␈β
<␈¬βthen␈αtest␈αthe␈αaccumulator␈αand␈αif␈αit␈αis␈α
now␈α
positive␈α
generate␈α
a␈α
deliberate
␈↓ β↔␈β
Z␈¬βerror␈α∞to␈α∞give␈α∞the␈α∞user␈α∞time␈α∞to␈α∞put␈α∞on␈α∞the␈α∞disk␈α∞all␈α∞the␈α∞files␈α∞that␈α
were
␈↓ β↔␈β
x␈¬βfound␈α
to␈α
be␈α
missing,␈α
before␈α
proceeding␈α
with␈α
the␈α
document␈α
compilation.
␈↓ ↓H␈β∀␈¬1␈¬∂m␈¬¬<OPEN><TEXT><CLOSE>
␈↓ ↓H␈β4␈¬β  ␈↓ β↔(U␈α↔J␈α↔CR␈α↔o␈α↔A)␈α⊗--␈α⊗send␈α⊗the␈α⊗text␈α⊗to␈α⊗the␈α⊗terminal,␈α⊗presumably␈α⊗to
␈↓ β↔␈βR␈¬βcommunicate␈α≠with␈α≠the␈α≠user,␈α~such␈α~as␈α~to␈α~indicate␈α~progress␈α~with
␈↓ β↔␈βp␈¬βcompilation␈α∩or␈α⊃to␈α⊃list␈α⊃which␈α⊃physical␈α⊃pages␈α⊃of␈α⊃output␈α⊃correspond␈α⊃to
␈↓ β↔␈β∞␈¬βwhich␈α
chapters␈α
of␈α
the␈α
document.
␈↓ α_␈β,␈¬βIn␈α
the␈α
above,␈¬¬␈α
<FILNAM>␈¬β␈α
is␈α
a␈α
standard␈α
file␈α
name␈¬∂␈α
FILNAM.EXT[P,P]␈¬β␈α
which␈α
must␈α
be␈α
either␈α
a␈α
non-POX
␈↓ ↓H␈βJ␈¬βfile␈α∞with␈α∞no␈α∞occurrences␈α∞of␈α∞the␈α∞brick␈α∞character␈α∞or␈α∞a␈α∞pox␈α∞file␈α∞that␈α∞does␈α∞not␈α∞begin␈α∞with␈α∞a␈α∞bare␈α∞brick
␈↓ ↓H␈βf␈¬βcharacter␈α∂(i.e.,␈α∂it␈α∂should␈α∂begin␈α∂with␈α∂something␈α∂like␈¬␈α∂1␈¬∂|␈¬1␈¬β),␈¬¬␈α∂<OPEN>␈¬β␈α∂and␈¬¬␈α∂<CLOSE>␈¬β␈α∂are␈α∞a␈α∞matching␈α∞pair␈α∞of
␈↓ ↓H␈β
ε␈¬βparentheses␈α⊂such␈α⊂as␈¬∂␈α⊂()␈α⊂[]␈α⊂{}␈α⊂⊂⊃␈α∂<>␈¬β,␈α∂in␈α∂which␈α∂case␈α∂occurrences␈α∂of␈α∂these␈α∂characters␈α∂in␈α∂the␈α∂body
␈↓ ↓H␈β
$␈¬βmust␈α∞be␈α∞correctly␈α∞matched,␈α∞or␈α∞else␈α∞two␈α∞identical␈α∞quoting␈α∞characters␈α∞such␈α∞as␈¬∂␈α∞""␈α∞//␈α∞↓↓␈α
⊗⊗␈α
||␈α
∂∂␈¬β,␈α
in
␈↓ ↓H␈β
B␈¬βwhich␈αcase␈αthe␈αquoting␈αcharacter␈αis␈αnot␈αallowed␈α
to␈α
occur␈α
in␈α
the␈α
body␈α
at␈α
all␈α
(the␈α
complete␈α
current␈α
list␈α
of
␈↓ ↓H␈β
`␈¬βlegal␈α
nesting␈α
and␈α
quoting␈α
characters␈α
may␈α
be␈α
found␈α
by␈α
examining␈α
the␈α
source␈α
for␈α
POX).
␈↓ α_␈β
|␈¬β(In␈α⊃the␈¬␈α⊃1␈¬∂@␈¬β␈α⊃command,␈α⊂after␈α⊂the␈α⊂file␈α⊂name␈α⊂and␈α⊂before␈α⊂the␈α⊂";",␈α⊂it␈α⊂has␈α⊂been␈α⊂proposed␈α⊂to␈α⊂allow
␈↓ ↓H␈β∞≤␈¬βuncoupling␈αflags,␈αdesignated␈¬¬␈α<UC>␈¬β␈αbelow.␈α_Their␈αpurpose␈αwill␈αbe␈αto␈αsave␈αvarious␈αinternal␈αstates␈αbefore
␈↓ ↓H␈β∞:␈¬βbeginning␈α∞to␈α∞input␈α∞an␈α∞inserted␈α
source␈α
file,␈α
then␈α
to␈α
restore␈α
those␈α
states␈α
before␈α
returning␈α
so␈α
that␈α
the
␈↓ ↓H␈β∞X␈¬βinserted␈αfile␈αwon't␈αpass␈αundesired␈αside-effects␈αback␈αto␈αthe␈αmain␈αprogram.␈α_In␈αthe␈αabsence␈αof␈αany␈¬¬␈α<UC>
␈↓ ↓H␈β∞v␈¬βflags,␈αany␈αmacro-definitions␈αor␈αfont␈αcompilations␈αetc.␈αdone␈αin␈αthe␈αinserted␈αsource␈αfile␈αwill␈αstay␈αin␈α
effect
␈↓ ↓H␈β∂∀␈¬βafter␈α
returning␈α
to␈α
the␈α
current␈α
file,␈α
a␈α
sometimes␈α
undesirable␈α
effect.)
␈↓ 	∪␈¬α 16␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 17␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ∧>␈β↓H␈¬Examples of macros without arguments
␈↓ ↓H␈β↓k␈¬∂$∞SUPERSCRIPT[$F1$∩$F2]$∞NORMAL[$F1$⊗]$; $F1 sets font so $∩ uses correct default
␈↓ ↓H␈βα	␈¬∂$!NORMAL;Y = X$!SUPERSCRIPT;i+1$!NORMAL;-1
␈↓ ↓H␈βα_␈¬Y = X␈¬α␈↓#⊂i+1␈¬-1
␈↓ ↓H␈βαd␈¬∂$∞SOJGxFOO[$F2(FOO)$←N$-=1;$→N$?SOJGxFOO;]$; set up a count-down-to-zero loop
␈↓ ↓H␈ββα␈¬∂$; note that the above macro will recursively call itself N levels deep
␈↓ ↓H␈ββ ␈¬∂$←=15;$→N$!SOJGxFOO;$; call the loop with N=15 to generate 15 copies of (FOO)
␈↓ ↓H␈ββ\␈¬α(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)
␈↓ β~␈β∧1␈¬MACROS WITH ARGUMENTS -- EVALUATED LIKE LISP EXPR'S
␈↓ α_␈β∧T␈¬βMany␈α
of␈α
the␈αcommands␈αdescribed␈αabove␈αare␈αtoo␈αelementary␈αto␈αbe␈αless␈αthan␈αtedious␈αin␈αpractice,
␈↓ ↓H␈β∧r␈¬βeven␈α⊂with␈α⊂macros␈α∂used␈α∂to␈α∂abbreviate␈α∂long␈α∂sequences␈α∂of␈α∂commands.␈α≡Complicated␈α∂things␈α∂are␈α∂almost
␈↓ ↓H␈β¬⊂␈¬βunbearable,␈α∞for␈α∞example␈α∞to␈α∞create␈α∞a␈α∞superscript␈α∞above␈α∞a␈α∞subscript␈α
as␈α
in␈α
"x-sub-i-to-the-nth-power"
␈↓ ↓H␈β¬.␈¬βwould␈α
require␈α
quite␈α
a␈α
mess␈α
of␈α
almost␈α
unreadable␈α
code,␈α
such␈α
as:
␈↓ αH␈β¬J␈¬1␈¬∂F1␈¬1␈¬∂⊗x␈¬1␈¬∂←.␈¬1␈¬∂→0␈¬1␈¬∂↑=15;␈¬1␈¬∂F2n␈¬1␈¬∂←.␈¬1␈¬∂→1␈¬1␈¬∂←0␈¬1␈¬∂→.␈¬1␈¬∂↓=12;i␈¬1␈¬∂←.␈¬1␈¬∂~1␈¬1␈¬∂→.␈¬1␈¬∂⊗␈¬1␈¬∂F1
␈↓ ↓H␈β¬j␈¬βwhere␈αyou␈αmay␈αhave␈αtrouble␈αlocating␈αthe␈αterms␈α"␈¬∂x␈¬β",␈α"␈¬∂n␈¬β"␈αand␈α"␈¬∂i␈¬β"␈αamidst␈αall␈αthe␈α
overhead.␈α∀Using␈α
macros
␈↓ ↓H␈βελ␈¬βwithout␈α⊃arguments␈α⊃may␈α⊃result␈α⊃in␈α⊃some␈α⊃increase␈α⊃in␈α⊃readability.␈α!This␈α⊂can␈α⊂be␈α⊂done␈α⊂in␈α⊂at␈α⊂least␈α⊂two
␈↓ ↓H␈βε&␈¬βreasonable␈α
ways,␈α
resulting␈α
in:
␈↓ αH␈βεB␈¬1␈¬∂!txt;x␈¬1␈¬∂!savecol;␈¬1␈¬∂!sub;i␈¬1␈¬∂!swapcol;␈¬1␈¬∂!sup;n␈¬1␈¬∂!maxcol;
␈↓ ↓H␈βε`␈¬βor␈¬␈↓ αH1␈¬∂∞main[x]␈¬1␈¬∂∞sub[i]␈¬1␈¬∂∞sup[n]␈¬1␈¬∂!sbp;
␈↓ ↓H␈βπ␈¬βMacros␈α∞with␈α∞arguments␈α∞make␈α∞things␈α∞easier␈α∞and␈α∞much␈α∞more␈α∞readable.␈α≤After␈α∞once␈α
defining␈α
the␈α
macro
␈↓ ↓H␈βπ≡␈¬∂sbp(main,sub,sup)␈¬β␈α~(see␈α~the␈α~examples␈α→later␈α→in␈α→this␈α→section␈α→for␈α→details)␈α→we␈α→can␈α→generate
␈↓ ↓H␈βπ<␈¬βx-sub-i-to-the-nth-power␈α
by␈α
the␈α
simple:
␈↓ αH␈βπX␈¬1␈¬∂!sbp(x,i,n);
␈↓ ↓H␈βπx␈¬βThe␈α
pseudo-language␈α
we␈α
thus␈αbuild␈αup␈αout␈αof␈αmacros-with-arguments␈αpartially␈αobviates␈αthe␈αnecessity
␈↓ ↓H␈βλ⊗␈¬βof␈α
fixing␈α
the␈α
"bad"␈α
syntax␈α
that␈α
POX␈α
has.
␈↓ ∧{␈βλR␈¬βDEFINE MACRO -- VERREM SYNTAX
␈↓ β∞␈βλp␈¬β(THIS AND FOLLOWING SECTIONS WERE REWRITTEN 1975.NOV.27-DEC.05)
␈↓ ↓H␈β	␈¬1␈¬∂8␈¬¬<NAME>␈¬∂(␈¬¬<ARGNAMES>␈¬∂)␈¬¬<OPEN><BODY><CLOSE>
␈↓ ↓H␈β	,␈¬β  ␈↓ α?(U␈α⊂J␈α⊂CR␈α⊂o␈α⊂A)␈α∂--␈α∂define␈α∂a␈α∂macro␈α∂with␈α∂arguments␈α∂(up␈α∂to␈¬∂␈α∂'30␈¬β␈α∂arguments␈α∂currently
␈↓ α?␈β	J␈¬βallowed).␈α≠The␈α
VERREM␈α
special-feature␈α
bit␈α
must␈α
be␈α
on␈α
at␈α
the␈α
time␈α
this␈α
command␈α
is
␈↓ α?␈β	h␈¬βscanned.␈α∀See␈α
details␈α
of␈α
syntax␈α
below.
␈↓ α?␈β
ε␈¬¬<ARGNAMES>␈¬β␈α--␈αUp␈αto␈¬∂␈α'30␈¬β␈αalphanumeric␈αstrings␈αseparated␈αby␈αcommas.␈α⊗(Note␈αthat␈αthe
␈↓ α?␈β
$␈¬βcharacters␈α
surrounding␈¬¬␈α
<ARGNAMES>␈¬β␈α
must␈α
be␈α
parentheses.)
␈↓ α?␈β
B␈¬¬<BODY>␈¬β␈α
--␈α
An␈α
arbitrary␈α
string␈α
of␈α
text␈α
to␈α
be␈α
copied␈α
verbatim␈α
into␈α
the␈α"body"␈αof␈αthe
␈↓ α?␈β
`␈¬βmacro.␈α⊗This␈αtext␈αwill␈αbe␈αspliced␈αinto␈αthe␈αinput␈αstream␈α
later␈α
when␈α
the␈α
macro␈α
is␈α
called
␈↓ α?␈β
|␈¬β(see␈αthe␈¬␈α
1␈¬∂!␈¬β␈α
command),␈α
just␈α
like␈α
macros␈α
without␈α
arguments.␈α∀The␈α
following␈α
exceptions
␈↓ α?␈β≤␈¬βto␈α
the␈α
"verbatim"␈α
copying␈α
exist:
␈↓ α?␈β:␈¬¬<OPEN>␈¬β␈α∞and␈¬¬␈α∞<CLOSE>␈¬β␈α∞must␈α∞be␈α∞properly-nested␈α
if␈α
they␈α
appear␈α
at␈α
all␈α
inside␈α
the␈α
body.
␈↓ α?␈βX␈¬βPOX␈α∞counts␈α∞how␈α∞many␈α∞levels␈α∞deep␈α
you␈α
are,␈α
and␈α
only␈α
terminates␈α
parsing␈α
when␈α
the
␈↓ α?␈βv␈¬βdepth␈αreaches␈αzero,␈αi.e.,␈αwhen␈αthe␈¬¬␈α<CLOSE>␈¬β␈αappears␈αthat␈αmatches␈αthe␈αoriginal␈¬¬␈α<OPEN>␈¬β.
␈↓ α?␈β∀␈¬βOf␈αcourse,␈αif␈αyou␈αuse␈αa␈αquoting␈αpair␈αto␈αdelimit␈αthe␈αbody,␈αthe␈αquoting␈αcharacters␈αmay
␈↓ α?␈β2␈¬βnot␈α
appear␈α
at␈α
all␈α
in␈α
the␈α
body.
␈↓ α?␈βN␈¬1␈¬β␈α⊂(i.e.,␈α⊂whatever␈α⊂your␈α∂brick␈α∂character␈α∂is␈α∂at␈α∂the␈α∂time␈α∂you␈α∂define␈α∂the␈α∂macro)␈α∂gets
␈↓ α?␈βn␈¬βconverted␈α
into␈α
a␈¬¬␈α
<BRICK>␈¬β␈α
token␈αif␈αthe␈αVERESC␈αspecial-feature␈αbit␈αis␈αon,␈αotherwise␈αit
␈↓ α?␈β
␈¬βgets␈αcopied␈αverbatim␈αtoo.␈α⊗When␈αthe␈¬¬␈α<BRICK>␈¬β␈αtoken␈αis␈αseen␈αlater␈αwhen␈α
expanding␈α
the
␈↓ α?␈β
(␈¬βmacro,␈αit␈αgets␈αconverted␈αto␈αthe␈¬␈α1␈¬β␈α
character,␈α
which␈α
will␈α
be␈α
a␈α
different␈α
character␈α
from
␈↓ α?␈β
F␈¬βthe␈α∀original␈α∀if␈α∀you␈α∀have␈α∀used␈¬␈α∀1␈¬∂|␈¬¬<CH>␈¬β␈α∀to␈α∀redefine␈α∀the␈α∀brick␈α∀character␈α∀in␈α∀the
␈↓ α?␈β
f␈¬βmeantime.␈α≤(Without␈α∞the␈α∞VERESC␈α∞feature,␈α∞it␈α∞would␈α∞be␈α∞the␈α∞same␈α∞ASCII␈α∞character␈α∞as
␈↓ α?␈β∞∧␈¬βbefore,␈α
even␈α
if␈α
it␈α
were␈α
no␈α
longer␈α
the␈α
brick␈α
character.)
␈↓ α?␈β∞"␈¬∂⊗$⊗␈¬β␈α∂gets␈α∂converted␈α∂into␈α∞the␈¬¬␈α∞<BRICK>␈¬β␈α∞token␈α∞regardless␈α∞of␈α∞the␈α∞state␈α∞of␈α∞the␈α∞VERESC
␈↓ α?␈β∞@␈¬βflag.
␈↓ α?␈β∞↑␈¬∂⊗⊗␈¬β␈α
gets␈α
converted␈α
into␈α
a␈α
␈↓&single␈↓)αβ␈¬∂␈α
⊗␈¬β␈α
character.
␈↓ α?␈β∞|␈¬∂⊗␈¬¬<ARGNAME>␈¬∂⊗␈¬β␈α∩(one␈α∩of␈α∩the␈α∩argument-names␈α∩you␈α∩specified␈α∩in␈α∩the␈¬¬␈α∩<ARGNAMES>␈¬β)␈α∩gets
␈↓ α?␈β∂~␈¬βconverted␈α∞into␈α∞the␈α∞appropriate␈¬¬␈α∞<ARGn>␈¬β␈α∞token.␈α~Later␈α
when␈α
the␈α
macro␈α
is␈α
called,␈α
this
␈↓ α?␈β∂+␈¬βtoken␈α
is␈α
replaced␈α
by␈α
the␈α
n␈↓#
th␈↓#␈α
actual-argument␈α
string.
␈↓ 	∪␈¬α 17␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 18␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ α?␈β↓H␈¬∂⊗@␈¬εq␈¬∂⊗␈¬β␈α∩(not␈α∩supported,␈α∩and␈α⊃likely␈α⊃to␈α⊃be␈α⊃purged␈α⊃or␈α⊃differently-implemented␈α⊃soon)
␈↓ α?␈β↓n␈¬βperforms␈αthe␈αregister-argument␈αlookup␈α
and␈α
uses␈α
the␈α
value␈α
thus␈α
obtained␈α
(must␈α
be␈α
in
␈↓ α?␈βα␈¬βthe␈α
range␈¬∂␈α
0␈¬β␈α
to␈¬∂␈α
'30␈¬β)␈α
to␈α
generate␈α
the␈α
corresponding␈¬¬␈α
<ARGn>␈¬β␈α
token.
␈↓ α?␈βα*␈¬∂⊗␈¬β...␈¬∂⊗␈¬β␈α∪--␈α∪anything␈α∪else␈α∩after␈α∩a␈¬∂␈α∩⊗␈¬β␈α∩character␈α∩is␈α∩illegal.␈α$An␈α∩error␈α∩will␈α∩usually␈α∩be
␈↓ α?␈βαH␈¬βgenerated␈α
before␈α
the␈α
second␈¬∂␈α
⊗␈¬β␈α
is␈α
seen␈α
(if␈α
there␈α
is␈α
one).
␈↓ ∧j␈ββ∧␈¬βCALLING MACROS -- LIKE LISP EXPR'S
␈↓ ↓H␈ββ ␈¬1␈¬∂!␈¬¬<NAME><ARGBATCH><ARGBATCH>...<ARGBATCH>␈¬∂;
␈↓ ↓H␈ββ@␈¬βwhere␈α∂each␈¬¬␈α∂<ARGBATCH>␈¬β␈α∞is␈α∞of␈α∞the␈α∞form␈¬¬␈α∞<OPEN><ACTUAL␈α∞ARGS><CLOSE>␈¬β␈α∞and␈α∞each␈¬¬␈α∞<ACTUAL␈α∞ARGS>␈¬β␈α∞consists␈α∞of
␈↓ ↓H␈ββ↑␈¬βarguments␈α
separated␈α
by␈α
commas,␈α
as␈α
described␈α
below.
␈↓ ↓H␈ββ|␈¬β  ␈↓ α?(U␈α⊃J␈α⊂CR␈α⊂o␈α⊂A)␈α⊂--␈α⊂call␈α⊂a␈α⊂macro␈α⊂with␈α⊂arguments.␈α Each␈¬¬␈α⊂<ARGBATCH>␈¬β␈α⊂unit␈α⊂may␈α⊂use␈α⊂a
␈↓ α?␈β∧~␈¬βdifferent␈¬¬␈α<OPEN>␈α<CLOSE>␈¬β␈αpair␈α(when␈αthe␈¬¬␈α<OPEN>␈¬β␈αis␈αseen,␈αPOX␈αlooks␈αit␈αup␈αin␈αa␈αtable␈αto
␈↓ α?␈β∧8␈¬βdetermine␈αwhich␈¬¬␈α
<CLOSE>␈¬β␈α
to␈α
look␈α
for)␈α
selected␈α
from␈α
the␈α
legal␈α
nesting␈α
or␈α
quoting␈α
pairs.
␈↓ α?␈β∧V␈¬βAs␈α
many␈α
arguments␈α
as␈α
desired,␈α
separated␈α
by␈α
commas,␈α
may␈α
appear␈α
in␈α
a␈α
single␈¬¬␈α
<ACTUAL
␈↓ α?␈β∧t␈¬¬ARGS>␈¬β␈αitem,␈αand␈αas␈αmany␈¬¬␈α<ARGBATCH>␈¬β␈αunits␈αmay␈α
appear␈α
altogether␈α
(as␈α
indicated␈α
by␈α
the
␈↓ α?␈β¬∩␈¬β"..."␈αin␈αthe␈αabove␈αsyntax␈αspecification),␈αprovided␈αthat␈αthe␈αtotal␈αnumber␈αof␈αarguments
␈↓ α?␈β¬0␈¬βdoes␈αnot␈αexceed␈¬∂␈α'30␈¬β.␈α_The␈αmost␈αcommon␈αway␈αof␈αdoing␈αit,␈αand␈αthe␈αeasiest,␈αis␈αto␈αuse
␈↓ α?␈β¬N␈¬βordinary␈α
parentheses,␈α
with␈α
all␈α
arguments␈α
in␈α
a␈α
single␈¬¬␈α
<ARGBATCH>␈¬β␈α
unit,␈α
for␈α
example:
␈↓ βU␈β¬j␈¬1␈¬∂!FOO(First argument,Second argument,Third arg);
␈↓ ↓H␈βε
␈¬β  ␈↓ α?However,␈αif␈αany␈αargument␈αcontains␈αor␈αgenerates␈αa␈αcomma,␈αit␈αis␈αnecessary␈αto␈αturn␈αon
␈↓ α?␈βε(␈¬βthe␈αVE1LES␈αspecial-feature␈αbit␈α(to␈αprevent␈αcomma␈αfrom␈αdelimiting␈αarguments)␈αand␈αto
␈↓ α?␈βεF␈¬βenclose␈α
each␈α
argument␈α
in␈α
a␈α
separate␈α
set␈α
of␈α
nesting␈α
characters,␈α
such␈α
as:
␈↓ α⎇␈βεb␈¬1␈¬∂!LESHACK(First argument with ",")(Second argument)(Third);
␈↓ ↓H␈βπα␈¬β  ␈↓ α?Also,␈α⊃if␈α⊃parenthesis␈α⊃occur␈α⊂inside␈α⊂arguments,␈α⊂it␈α⊂is␈α⊂usually␈α⊂necessary␈α⊂to␈α⊂use␈α⊂some
␈↓ α?␈βπ ␈¬βother␈α
nesting␈α
or␈α
quoting␈α
pair,␈α
for␈α
example:
␈↓ β∃␈βπ<␈¬1␈¬∂!MESS<This contains (, [, ", and { inside an argument>;
␈↓ ↓H␈βπ\␈¬β  ␈↓ α?A␈α$detailed␈α$description␈α$of␈α$the␈α$algorithm␈α$that␈α#is␈α#used␈α#to␈α#scan␈α#the
␈↓ α?␈βπz␈¬βmacro-with-arguments␈α
syntax,␈α
build␈α
up␈α
arguments,␈α
bind␈α
them␈α
to␈α
the␈¬¬␈α
<ARGn>␈¬β␈α
table␈α
that
␈↓ α?␈βλ_␈¬βis␈αpassed␈αto␈αthe␈αmacro-body␈αexpander,␈αand␈αthe␈αalgorithm␈αthe␈αmacro-body␈αexpander
␈↓ α?␈βλ6␈¬βuses␈α∂to␈α∂splice␈α∂the␈α∂macro␈α∂body␈α∂and␈α∂the␈α∂arguments␈α∞into␈α∞the␈α∞input␈α∞stream,␈α∞is␈α∞given
␈↓ α?␈βλT␈¬βlater.␈α⊗If␈αyou␈αplan␈αto␈αdo␈αanything␈αcomplicated␈αwith␈αmacros,␈αyou␈αwill␈α
need␈α
to␈α
read␈α
the
␈↓ α?␈βλr␈¬βalgorithm-description␈α∩and␈α∩understand␈α⊃it␈α⊃in␈α⊃order␈α⊃to␈α⊃predict␈α⊃what␈α⊃happens␈α⊃when
␈↓ α?␈β	∞␈¬βvarious␈α
special␈α
characters␈α
(␈¬¬<COMMA>␈α
<OPEN>␈α
<CLOSE>␈¬β␈αand␈¬␈α1␈¬β)␈αare␈αgenerated␈αinside␈αthe
␈↓ α?␈β	.␈¬βscanning-of-arguments␈α
process.␈α→Note␈αthat␈αit␈αis␈αnot␈αlegal␈αto␈αgenerate␈αan␈αASCII␈α'177
␈↓ α?␈β	L␈¬βor␈α∃'0␈α∃character␈α∃while␈α∃preparing␈α∃an␈α∃argument,␈α∃thus␈α∃many␈α∃commands␈α∃(such␈α∃as
␈↓ α?␈β	j␈¬βfont-select)␈α∞are␈α∞illegal␈α∞inside␈α∞arguments.␈α≤By␈α∞quoting␈α∞the␈α∞characters␈α∞that␈α∞make␈α∞up
␈↓ α?␈β
λ␈¬βthe␈α∀command␈α∀(see␈α∪below),␈α∪however,␈α∪the␈α∪evaluation␈α∪of␈α∪such␈α∪commands␈α∪may␈α∪be
␈↓ α?␈β
&␈¬βpostponed␈αuntil␈αafter␈αthe␈αexpanded␈αmacro␈αhas␈αbeen␈αgenerated␈αand␈αpatched␈αinto␈αthe
␈↓ α?␈β
D␈¬βinput␈α∪stream,␈α∩at␈α∩a␈α∩time␈α∩when␈α∩such␈α∩commands␈α∩are␈α∩legal.␈α$Be␈α∩aware␈α∩that␈α∩other
␈↓ α?␈β
`␈¬βcommands␈α∞such␈α∞as␈¬␈α∞1␈¬∂A␈¬β␈α∞have␈α∞a␈α∞slightly␈α∞different␈α∞effect␈α∞depending␈α∞on␈α
whether␈α
they
␈↓ α?␈β␈¬βare␈αevaluated␈αwhile␈αscanning␈αan␈αargument␈αor␈αwhile␈αgenerating␈αoutput␈αtext␈αlater,␈α
and
␈↓ α?␈β≡␈¬βthat␈αcommands␈αthat␈αfetch␈αcontents␈α
of␈α
registers␈α
etc.␈α∀will␈α
give␈α
different␈α
effects␈α
if␈α
that
␈↓ α?␈β<␈¬βdata␈α
changes␈α
after␈α
argument-scanning-binding␈α
time.
␈↓ ↓H␈βX␈¬1␈¬∂?␈¬¬<NAME><OPEN><ACTUAL ARGS><CLOSE><OPEN><A.A.><CLOSE>...␈¬∂;
␈↓ ↓H␈βx␈¬β  ␈↓ α?(U␈α
J␈α
CR␈α
o␈αA)␈α--␈αconditionally␈αcall␈αa␈αmacro␈αwith␈αarguments.␈α_At␈αthe␈αbeginning␈αof␈αthe
␈↓ α?␈β∀␈¬βscan,␈αjust␈αafter␈αthe␈α"␈¬1␈¬∂?␈¬β"␈αhas␈αbeen␈αseen,␈αa␈αflag␈αis␈αset␈αaccording␈αto␈αwhether␈αthe␈αac␈α
␈↓&is␈↓)αβ
␈↓ α?␈β2␈¬βpositive␈α
or␈α
not.␈α~Then␈α
all␈αargument␈αscanning␈αetc.␈αis␈αperformed␈αjust␈αlike␈αin␈αthe␈α"␈¬1␈¬∂!␈¬β"
␈↓ α?␈βR␈¬βcommand␈α⊃(indeed,␈α⊃the␈α⊃same␈α⊃piece␈α⊃of␈α⊃code␈α⊃is␈α⊃executed␈α⊃in␈α⊂POX).␈α When␈α⊂the␈α⊂final
␈↓ α?␈βp␈¬βsemicolon␈α∞is␈α∞seen,␈α∞the␈α∞flag␈α∞is␈α∞tested␈α∞to␈α∞determine␈α
whether␈α
the␈α
input-stream␈α
patch
␈↓ α?␈β
∞␈¬βwill␈α∩be␈α∩done␈α∩(if␈α∩the␈α∩ac␈α∩␈↓&was␈↓)αβ␈α∩positive)␈α∩or␈α∩the␈α∩patch␈α∩not␈α∩done␈α∩and␈α⊃the␈α⊃table␈α⊃of
␈↓ α?␈β
,␈¬βarguments␈α
flushed␈α
(if␈α
the␈α
ac␈α
␈↓&was␈↓)αβ␈α
zero␈α
or␈α
negative).
␈↓ ↓H␈β
H␈¬1␈¬∂I␈¬¬<NAME><OPEN><ACTUAL ARGS><CLOSE><OPEN><A.A.><CLOSE>...␈¬∂;
␈↓ ↓H␈β
f␈¬β  ␈↓ α?(U␈α⊃J␈α⊃CR␈α⊃o␈α⊃A)␈α⊃--␈α⊃iteratively␈α⊃call␈α⊂a␈α⊂macro␈α⊂with␈α⊂arguments.␈α Similar␈α⊂to␈¬␈α⊂1␈¬∂I␈¬¬<NAME>␈¬∂;
␈↓ α?␈β∞ε␈¬βcommand.␈α≤Note␈α∞that␈α∞the␈α∞arguments␈α∞are␈α∞only␈α∞evaluated␈α∞and␈α∞bound␈α∞once,␈α
after␈α
the
␈↓ α?␈β∞$␈¬βinitial␈αtesting␈αof␈αac>0␈αand␈αbefore␈αthe␈αfirst␈αpatching␈αof␈αthe␈αmacro␈αbody␈αinto␈α
the␈α
input
␈↓ α?␈β∞B␈¬βstream.
␈↓ 	∪␈¬α 18␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 19␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ β>␈β↓H␈¬βDETAILED DESCRIPTION OF ALGORITHM FOR PROCESSING MACROS
␈↓ α_␈β↓d␈¬β(1)␈αIf␈αthe␈αcommand␈αwas␈¬␈α1␈¬∂?␈¬β␈αthen␈αthe␈αsplice-enabling␈αflag␈αis␈αset␈αaccording␈αto␈αthe␈αcontents␈αof␈αthe
␈↓ ↓H␈βαα␈¬βac,␈αbut␈αif␈αthe␈αcommand␈αis␈¬␈α1␈¬∂!␈¬β␈αthen␈αthe␈αflag␈αis␈αset␈αto␈αTRUE␈αregardless.␈α⊗Text␈αis␈αscanned␈αuntil␈αa␈αdelimiter
␈↓ ↓H␈βα"␈¬βis␈α∞seen,␈α∞and␈α∞the␈¬¬␈α∞<NAME>␈¬β␈α∞thus␈α
scanned␈α
is␈α
looked␈α
up␈α
in␈α
the␈α
table␈α
of␈α
existing␈α
macros.␈α~The␈α
body␈α
of␈α
the
␈↓ ↓H␈βα@␈¬βmacro␈αis␈αsaved␈αto␈αbe␈αused␈αlater,␈αand␈αan␈αempty␈αlist␈αof␈αarguments␈αis␈αset␈αup.␈α⊗The␈αdelimiter␈αat␈αthe␈αend␈αof
␈↓ ↓H␈βα↑␈¬βthe␈¬¬␈α
<NAME>␈¬β,␈α
which␈α
should␈α
be␈α
either␈α
a␈α
semicolon␈α
or␈α
an␈α
open-nesting␈α
or␈α
quoting␈α
character,␈α
is␈α
now␈α
tested:
␈↓ α_␈βα|␈¬β(2)␈α∞If␈α∞that␈α∞character␈α∞was␈α∞a␈α
semicolon,␈α
then␈α
go␈α
to␈α
(5);␈α
If␈α
it␈α
was␈α
a␈α
legal␈α
open-nesting␈α
or␈α
quoting
␈↓ ↓H␈ββ~␈¬βcharacter,␈αthen␈αlook␈α
up␈α
the␈α
corresponding␈α
close-nesting␈α
or␈α
quoting␈α
character␈α
in␈α
the␈α
nesting␈α
table␈α
inside
␈↓ ↓H␈ββ8␈¬βPOX␈αand␈αsave␈αit␈αfor␈αlater␈αreference,␈αthen␈αset␈αnesting␈αdepth␈αto␈αzero␈αand␈αenter␈αa␈αscanner␈αin␈α
which␈α
input
␈↓ ↓H␈ββV␈¬βcontinues␈αto␈αbe␈αread␈αand␈αbrick␈αcommands␈αcontinue␈αto␈αbe␈αexecuted␈α
as␈α
they␈α
occur,␈α
but␈α
output␈α
is␈α
fed␈α
into
␈↓ ↓H␈ββt␈¬βan␈α⊃argument-body␈α⊃that␈α⊃is␈α⊃being␈α⊃constructed.␈α"Paragraph␈α⊃(3)␈α⊃describes␈α⊃this␈α⊃scanning␈α⊃process,␈α⊃and
␈↓ ↓H␈β∧∩␈¬βparagraph␈α
(4)␈α
describes␈α
what␈α
happens␈α
when␈α
brick␈α
commands␈α
are␈α
seen␈α
during␈α
the␈α
scanning.
␈↓ α_␈β∧0␈¬β(3)␈α
Read␈α
a␈α
character.
␈↓ α_␈β∧N␈¬βIf␈αit␈αis␈αthe␈αclose-nesting␈αor␈αquoting␈αcharacter␈αthen␈αwe␈αdecrement␈αnesting␈αdepth,␈αthen␈αdepending
␈↓ ↓H␈β∧l␈¬βon␈α
its␈α
resultant␈α
value␈α
do␈α
the␈αfollowing:␈α_DEPTH<0,␈αclose␈αoff␈αthis␈αargument-body,␈αput␈αit␈αin␈αthe␈αtable␈αof
␈↓ ↓H␈β¬
␈¬βarguments,␈α∞read␈α
one␈α
more␈α
character,␈α
and␈α
go␈α
to␈α
(2)␈α
[THIS␈α
IS␈α
THE␈α
ONLY␈α
EXIT␈α
FROM␈α
THIS␈α
(3)␈α
SCANNING
␈↓ ↓H␈β¬(␈¬βLOOP];␈α⊃DEPTH=0,␈α⊃do␈α⊃nothing,␈α⊃continue␈α⊃(3)␈α⊃scanning;␈α⊃DEPTH>0,␈α⊃emit␈α⊃the␈α⊃character␈α⊃(close-nesting␈α⊃or
␈↓ ↓H␈β¬F␈¬βquoting)␈α
into␈α
the␈α
argument-body␈α
and␈α
continue␈α
(3)␈α
scanning.
␈↓ α_␈β¬d␈¬βElse␈α∂if␈α∂it␈α∂is␈α∂the␈α∂open-nesting␈α∂character␈α∂then␈α∂(assuming␈α∂VERRHT␈α∂is␈α∂enabled)␈α∂increment␈α∞nesting
␈↓ ↓H␈βεα␈¬βdepth,␈α∂then␈α∂depending␈α∂on␈α∂the␈α∂result␈α∂do␈α∂the␈α∂following:␈α≡DEPTH=1,␈α∂do␈α∞nothing,␈α∞continue␈α∞(3)␈α∞scanning;
␈↓ ↓H␈βε ␈¬βDEPTH>1,␈α
emit␈α
the␈α
character␈α
(open-nesting)␈α
into␈α
the␈α
argument-body,␈α
continue␈α
(3)␈α
scanning.
␈↓ α_␈βε<␈¬βElse␈αif␈αDEPTH>0␈αthen␈αemit␈αthe␈αcharacter␈αinto␈αthe␈αargument-body␈α
(thus␈¬␈α
1␈¬β␈α
and␈¬¬␈α
<COMMA>␈¬β␈α
are␈α
quoted
␈↓ ↓H␈βε\␈¬βrather␈α
than␈α
being␈α
acted-upon␈α
as␈α
below)␈α
and␈α
continue␈α
(3)␈α
scanning.
␈↓ α_␈βεz␈¬βElse␈αif␈αthe␈αcharacter␈αis␈αa␈αcomma␈αthen␈αdo␈αthe␈αfollowing:␈α∀If␈α
VE1LES␈α
is␈α
on␈α
then␈α
emit␈α
the␈α
comma␈α
into
␈↓ ↓H␈βπ_␈¬βthe␈αargument-body␈αand␈αcontinue␈α(3)␈αscanning;␈αelse␈αclose␈αoff␈αthe␈αargument-body␈αand␈αput␈αit␈αin␈αthe␈αtable
␈↓ ↓H␈βπ6␈¬βof␈α
arguments,␈α
then␈α
open␈α
a␈α
new␈α
argument-body␈α
and␈α
continue␈α
(3)␈α
scanning.
␈↓ α_␈βπT␈¬βElse␈α
if␈α
it␈α
is␈αthe␈αbrick␈αcharacter␈αthen␈αparse␈αthe␈αbrick-command␈αas␈αdescribed␈αin␈α(4),␈αand␈αcontinue
␈↓ ↓H␈βπr␈¬β(3)␈α
scanning␈α
when␈α
done.
␈↓ α_␈βλ⊂␈¬β(4)␈α∀Brick-commands␈α∀are␈α∀parsed␈α∀in␈α∪the␈α∪usual␈α∪way,␈α∪except␈α∪that␈α∪certain␈α∪commands␈α∪(such␈α∪as
␈↓ ↓H␈βλ.␈¬βfont-select)␈αare␈αnot␈αimplemented␈αbecause␈αthey␈αemit␈αrubouts␈αwhich␈αare␈αnot␈αpermitted␈α
in␈α
arguments,␈α
and
␈↓ ↓H␈βλL␈¬βa␈α⊃few␈α⊃other␈α⊃commands␈α⊃that␈α⊃do␈α⊃strange␈α⊃things␈α⊂are␈α⊂also␈α⊂not␈α⊂implemented.␈α When␈α⊂considering␈α⊂brick
␈↓ ↓H␈βλj␈¬βcommands␈α⊂that␈α⊂generate␈α⊂text,␈α⊂it␈α⊂is␈α⊂important␈α⊂to␈α⊂distinguish␈α⊂between␈α⊂those␈α∂commands␈α∂which␈α∂emit␈α∂a
␈↓ ↓H␈β	␈¬βcharacter␈α⊂into␈α⊂the␈α⊂output␈α⊂stream␈α⊂(the␈α⊂argument␈α⊂body)␈α⊂directly␈α⊂(these␈α∂commands␈α∂are␈¬␈α∂1␈¬∂A␈¬εq␈¬β,␈¬␈α∂11␈¬β␈α∂and
␈↓ ↓H␈β	≡␈¬1␈¬∂"␈¬¬<CH>␈¬β)␈α
and␈α
those␈α
which␈αsplice␈αtext␈αinto␈αthe␈αinput␈αstream␈α(these␈αcommands␈αare␈¬␈α1␈¬∂D␈¬εq␈¬β,␈¬␈α1␈¬∂!␈¬β...,␈¬␈α1␈¬∂?␈¬β...,␈¬␈α1␈¬∂@␈¬β...
␈↓ ↓H␈β	B␈¬βand␈¬␈α1␈¬∂α␈¬β...).␈α↔In␈αthe␈αlatter␈αgroup␈αof␈αcommands,␈αthe␈αspliced␈αtext␈αwill␈αbe␈αseen␈αlater␈αby␈αthe␈α(3)␈αscanner,␈αand
␈↓ ↓H␈β	b␈¬βif␈α⊂the␈α⊂spliced␈α⊂text␈α∂contains␈α∂any␈α∂of␈α∂the␈α∂special␈α∂characters␈α∂mentioned␈α∂in␈α∂(3),␈α∂then␈α∂the␈α∂corresponding
␈↓ ↓H␈β
␈¬βspecial␈α∞effect␈α∞will␈α∞of␈α∞course␈α∞occur.␈α≤(It␈α∞is␈α∞generally␈α∞a␈α∞good␈α∞idea␈α∞to␈α∞avoid␈α∞this␈α∞except␈α∞in␈α∞those␈α
cases
␈↓ ↓H␈β
≡␈¬βwhen␈αsuch␈αcomplicated␈αthings␈αare␈αactually␈αneeded␈αto␈αachieve␈α
a␈α
complicated␈α
effect,␈α
as␈α
shown␈α
in␈α
some␈α
of
␈↓ ↓H␈β
<␈¬βthe␈α
advanced␈α
examples␈α
below.)
␈↓ α_␈β
X␈¬βThe␈¬␈α⊂1␈¬∂!␈¬β␈α⊂and␈¬␈α∂1␈¬∂?␈¬β␈α∂commands␈α∂are␈α∂especially␈α∂interesting␈α∂when␈α∂they␈α∂not␈α∂only␈α∂are␈α∂executed␈α∂while
␈↓ ↓H␈β
x␈¬βscanning␈α~an␈α~argument␈α~but␈α~they␈α~contain␈α~arguments␈α~themselves.␈α4What␈α~happens␈α~is␈α→that␈α→all
␈↓ ↓H␈β⊗␈¬βstatus-information␈αabout␈αthis␈αlevel␈αof␈αargument-scanning␈α(inside␈αthe␈αparsing␈αof␈α
the␈α
macro-call␈α
command
␈↓ ↓H␈β4␈¬βthat␈αbegan␈αearlier)␈αis␈αsaved␈αon␈αthe␈αstack,␈αand␈αthis␈αpiece␈αof␈αcode␈αin␈αPOX␈α(i.e.,␈α(1)␈αthru␈α(5)␈αas␈αdescribed
␈↓ ↓H␈βR␈¬βhere)␈αis␈αentered␈αrecursively␈αto␈αparse␈αthe␈αnew␈αlevel␈αof␈αmacro-call␈αand␈αarguments␈α
to␈α
it.␈α∀Then␈α
when␈α
that
␈↓ ↓H␈βp␈¬βlevel␈α
of␈α
this␈α
piece␈αof␈αcode␈αreturns,␈αafter␈αsplicing␈αthe␈αinput␈αstream,␈αthat␈αstatus-information␈αis␈αrestored
␈↓ ↓H␈β∞␈¬βand␈α∂scanning␈α∂is␈α∂resumed␈α∞at␈α∞this␈α∞level␈α∞as␈α∞if␈α∞nothing␈α∞had␈α∞happened␈α∞(except,␈α∞of␈α∞course,␈α∞that␈α∞since␈α∞the
␈↓ ↓H␈β,␈¬βinput␈α
stream␈αhas␈αbeen␈αspliced,␈αthe␈αoutput␈αfrom␈αthat␈αlower-level␈αof␈αmacro-expansion␈αwill␈αnow␈αbe␈αseen
␈↓ ↓H␈βJ␈¬βby␈α
the␈α
scanner␈α
at␈α
this␈α
level).
␈↓ α_␈βh␈¬βUsers␈αof␈αLISP␈α1.6␈αand␈αvariants␈αthereof␈αwill␈αnote,␈αin␈αthe␈αcase␈αwhere␈α
no␈α
parsing␈α
side-effects␈α
occur
␈↓ ↓H␈β
ε␈¬β(i.e.,␈α∞when␈¬¬␈α∞<COMMA>␈α∞<OPEN>␈¬β␈α∞and␈¬¬␈α∞<CLOSE>␈¬β␈α∞are␈α∞not␈α∞included␈α∞in␈α
the␈α
spliced␈α
text)␈α
and␈α
there␈α
is␈α
exactly␈α
one
␈↓ ↓H␈β
$␈¬βmacro␈αcall␈αor␈αone␈αquoted␈αstring␈αof␈αtext␈αin␈αeach␈αargument,␈αthat␈αthe␈αfinal␈αresult␈αof␈αPOX␈αmacro␈αexpansion
␈↓ ↓H␈β
B␈¬βis␈α⊂exactly␈α⊂the␈α⊂same␈α⊂as␈α⊂the␈α∂corresponding␈α∂LISP␈α∂s-expression␈α∂EVALuation␈α∂in␈α∂which␈α∂every␈α∂function␈α∂is
␈↓ ↓H␈β
`␈¬βeither␈α
an␈α
EXPR␈α
or␈α
a␈α
MACRO.␈α∀For␈α
example,
␈↓ ∧O␈β
|␈¬1␈¬∂!FOO(␈¬1␈¬∂!BAZ(␈¬1␈¬∂!FB;);,␈¬1␈¬∂!GAR(FG););
␈↓ ↓H␈β∞≤␈¬βis␈α∩equivalent␈α∩to␈α∩the␈α∩s-expression␈¬∂␈α∩(FOO␈α∩(BAZ␈α∩(FB))␈α∩(GAR␈α∩(QUOTE␈α∩FG)))␈¬β.␈α$In␈α∩POX␈α⊃there␈α⊃is␈α⊃the
␈↓ ↓H␈β∞:␈¬βadditional␈α∂facility␈α∂of␈α∂appending␈α∂together␈α∂the␈α∂strings␈α∂that␈α∂are␈α∂generated␈α∂by␈α∞multiple␈α∞macro-calls␈α∞and
␈↓ ↓H␈β∞X␈¬βquoted␈α
strings␈α
in␈α
a␈α
single␈α
argument,␈α
for␈α
example:
␈↓ ¬+␈β∞t␈¬1␈¬∂!FOO(BAZ␈¬1␈¬∂!GAR(FG););
␈↓ ↓H␈β∂∀␈¬βis␈α
roughly␈α
equivalent␈α
to␈¬∂␈α
(FOO␈α
(APPEND␈α
(QUOTE␈α
BAZ)␈α
(GAR␈α
(QUOTE␈α
FG))))␈¬β␈α
or␈α
something␈α
like␈α
that.
␈↓ α_␈β∂2␈¬β(5)␈α[The␈αonly␈αway␈αto␈αreach␈αthis␈αpiece␈αof␈αcode␈αis␈αto␈αjump␈αhere␈αfrom␈α(2)␈αafter␈αseeing␈αa␈αsemicolon
␈↓ 	∪␈¬α 19␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 20␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬βthere.]␈α~If␈α
the␈α
splice-enabling␈α
flag␈α
was␈α
not␈α
set␈α
above,␈α
then␈α
all␈α
the␈αarguments␈αscanned␈αin␈α(3)␈αetc.,␈αand
␈↓ ↓H␈β↓f␈¬βthe␈α
macro␈α
body␈α
saved␈α
in␈α
(1),␈αare␈αnow␈αflushed␈α(the␈αonly␈αpurpose␈αof␈αall␈αthis␈αscanning␈αwas␈αto␈αmake␈αthe
␈↓ ↓H␈βα∧␈¬βsyntax␈αcome␈αout␈αright␈αat␈αthis␈αlevel,␈αalthough␈αany␈αside-effects␈α(such␈αas␈αstoring␈αa␈αvalue␈αin␈αa␈αregister␈αor
␈↓ ↓H␈βα"␈¬βdefining␈α
a␈α
macro␈α
or␈α
overlay)␈α
during␈α
scanning␈α
arguments␈α
will␈α
of␈α
course␈α
remain␈α
done);␈α
If,␈α
however,␈αthe
␈↓ ↓H␈βα@␈¬βsplice-enabling␈αflag␈α␈↓&was␈↓)αβ␈αset,␈αthen␈αthe␈αcurrent␈αinput␈αstream␈αis␈αnow␈αIOPUSHed␈αso␈αthat␈αit␈αcan␈αbe␈αresumed
␈↓ ↓H␈βα↑␈¬βlater␈α∩when␈α∩the␈α⊃expanded␈α⊃macro␈α⊃we␈α⊃are␈α⊃generating␈α⊃has␈α⊃become␈α⊃exhausted,␈α⊃and␈α⊃the␈α⊃input␈α⊃is␈α⊃now
␈↓ ↓H␈βα|␈¬βswitched␈αto␈αthe␈αmacro␈αbody␈αwe␈αlooked␈αup␈αand␈αset␈αaside␈αin␈α(1)␈αabove,␈αwith␈αthe␈αlist␈αof␈αargument-bodies
␈↓ ↓H␈ββ~␈¬βstanding␈αby␈αto␈αbe␈αreferenced␈αwhenever␈αan␈¬¬␈α<ARGn>␈¬β␈αtoken␈αappears␈αin␈αthe␈αmacro␈αbody.␈α⊗In␈αany␈αcase,␈αthis
␈↓ ↓H␈ββ8␈¬βlong-winded␈α∞piece␈α∞of␈α∞code␈α∞for␈α∞scanning␈α∞macro-calls␈α∞now␈α∞returns␈α
control␈α
to␈α
whoever␈α
called␈α
it␈α
at␈α
this
␈↓ ↓H␈ββV␈¬βlevel.␈α (The␈α⊂equivalent␈α⊂thing␈α⊂in␈α⊂LISP␈α⊂1.6␈α⊂evaluation␈α⊂of␈α⊂s-expressions␈α⊂is␈α⊂that␈α⊂the␈α⊂call␈α∂to␈α∂an␈α∂MACRO
␈↓ ↓H␈ββt␈¬βgenerates␈αan␈αexpression␈αwhich␈αis␈αthen␈αre-evaluated␈αby␈αthe␈αimplicit␈αEVAL␈αthat␈αcalled␈αit␈αwhile␈α
evaluating
␈↓ ↓H␈β∧∩␈¬βarguments␈αto␈αa␈αhigher␈αEXPR␈αor␈αMACRO␈α--␈αyou␈αmay␈αalso␈αcompare␈αPOX␈αmacros␈αto␈αEXPR's,␈αwhich␈α
produce
␈↓ ↓H␈β∧0␈¬βthe␈αsame␈αeffect␈αas␈αMACROs,␈αalthough␈αby␈αa␈αdifferent␈αmechanism␈α--␈αof␈αcourse,␈αthis␈αparallel␈αbreaks␈αdown
␈↓ ↓H␈β∧N␈¬βif␈α∀commas␈α∀or␈α∀unmatched␈α∀nesting␈α∀characters␈α∀are␈α∀returned,␈α∪in␈α∪which␈α∪case␈α∪rather␈α∪bizarre␈α∪parsing
␈↓ ↓H␈β∧l␈¬βside-effects␈α
can␈α
occur␈α
in␈α
POX␈α
--␈α
in␈α
this␈α
respect,␈α
LISP␈α
is␈α
cleaner,␈α
the␈α
only␈α
way␈α
to␈αmake␈αsimilar␈αthings
␈↓ ↓H␈β¬
␈¬βhappen␈α∂is␈α∂to␈α∂explicitly␈α∂mung␈α∂the␈α∂stack.)␈α≡See␈α∂(6)␈α∞for␈α∞what␈α∞actually␈α∞happens␈α∞now␈α∞when␈α∞higher-level
␈↓ ↓H␈β¬(␈¬βroutines␈αattempt␈αto␈αinput␈αcharacters␈αfrom␈αthe␈αmacro-body␈αwith␈αargument-list␈αthat␈αnow␈αconstitutes␈αthe
␈↓ ↓H␈β¬F␈¬βinput␈α
stream.
␈↓ αH␈βεα␈¬βDESCRIPTION OF ALGORITHM FOR READING TEXT FROM A COMPOSITE INPUT STREAM
␈↓ α_␈βε ␈¬β(6)␈αWhen␈αany␈αroutine␈αrequests␈α
to␈α
input␈α
a␈α
character,␈α
the␈α
character␈α
comes␈α
from␈α
either␈α
an␈α
input␈α
file
␈↓ ↓H␈βε>␈¬βor␈αa␈αmacro-body␈αor␈αan␈αargument-body␈α(which␈αis␈αtreated␈αexactly␈αlike␈αa␈αmacro-body␈αexcept␈αthat␈αthe␈αlist
␈↓ ↓H␈βε\␈¬βof␈αarguments␈αis␈αalways␈αnull␈αin␈αthis␈αcase,␈αi.e.,␈αarguments␈αcannot␈αthemselves␈αhave␈αarguments).␈α∃When␈α
any
␈↓ ↓H␈βεz␈¬βfile␈α
or␈α
macro-body␈α
is␈α
exhausted,␈α
an␈α
IOPOP␈α
occurs,␈α
so␈α
that␈α
input␈α
continues␈αfrom␈αthe␈αnext-higher␈αinput
␈↓ ↓H␈βπ_␈¬βstream␈α∂that␈α∞was␈α∞suspended␈α∞earlier.␈α≤(When␈α∞the␈α∞top-level␈α∞file␈α∞is␈α∞exhausted,␈α∞an␈α∞END-OF-FILE␈α∞signal␈α∞is
␈↓ ↓H␈βπ6␈¬βpassed␈α
up␈α
and␈α
causes␈α
POX␈α
to␈α
close␈α
out␈αprocessing␈αand␈αexit.)␈α_Finally,␈αif␈αa␈αspecial␈αtoken␈αis␈αseen␈αwhile
␈↓ ↓H␈βπT␈¬βreading␈α∪from␈α∩a␈α∩macro-body,␈α∩the␈α∩following␈α∩actions␈α∩are␈α∩automatically␈α∩taken:␈α$The␈¬¬␈α∩<BRICK>␈¬β␈α∩token␈α∩is
␈↓ ↓H␈βπp␈¬βreplaced␈α∞by␈α∞the␈α∞current␈¬␈α∞1␈¬β␈α∞character;␈α∞the␈¬¬␈α
<ARGn>␈¬β␈α
token␈α
(if␈α
the␈α
table␈α
of␈α
arguments␈α
contains␈α
at␈α
least␈α
n
␈↓ ↓H␈βλ⊂␈¬βarguments)␈αcauses␈αan␈αIOPUSH␈αof␈αthe␈αmacro-body␈α
(with␈α
associated␈α
table␈α
of␈α
arguments),␈α
and␈α
causes␈α
input
␈↓ ↓H␈βλ!␈¬βto␈αbe␈αswitched␈αto␈αthat␈αn␈↓#
th␈↓#␈αargument-body,␈αwhich␈αwill␈αnow␈αbe␈αused␈αuntil␈αit␈αis␈αexhausted,␈αat␈αwhich␈αtime
␈↓ ↓H␈βλL␈¬βthe␈α
original␈α
macro-body␈α
will␈α
resume.
␈↓ ∧U␈β	β␈¬Examples of macros with arguments
␈↓ ↓H␈β	&␈¬βHere's␈α
the␈¬∂␈α
sbp␈¬β␈α
macro␈α
definition␈α
referred-to␈α
earlier,␈α
and␈α
also␈α
used␈α
later␈αto␈αdemonstrate␈αthe␈αargument
␈↓ ↓H␈β	D␈¬βbinding-evaluation␈α
process:
␈↓ αH␈β	`␈¬1␈¬∂8sbp(main,sub,sup)[␈¬1␈¬∂F1␈¬1␈¬∂⊗⊗⊗main⊗␈¬1␈¬∂←.␈¬1␈¬∂→0␈¬1␈¬∂↑=15;␈¬1␈¬∂F2⊗sup⊗␈¬1␈¬∂←.␈¬1␈¬∂→1␈¬1␈¬∂N
␈↓ αH␈β	}␈¬1␈¬∂←0␈¬1␈¬∂→.␈¬1␈¬∂↓=12;⊗sub⊗␈¬1␈¬∂←.␈¬1␈¬∂~1␈¬1␈¬∂→.␈¬1␈¬∂⊗⊗␈¬1␈¬∂F1]
␈↓ ∧)␈β
7␈¬Detailed examples of argument evaluation
␈↓ α.␈β
Z␈¬∧(The macros called from here, and the fonts used here, are defined in 75224.LMD[1,REM].)
␈↓ ↓H␈β
x␈¬∂\!sbp(X,i-1,n);␈↓ ∧H\;Nothing special here, matching nesting characters, commas
␈↓ ↓H␈β∀␈¬∧X␈¬¬␈↓#si-1␈↓#
␈↓ ↓Xn␈↓#
␈↓ ↓H␈βd␈¬∂\!sbp(X)(i-1)(n);␈↓ ∧H\;One of several other ways to do the same thing
␈↓ ↓H␈β␈¬∧X␈¬¬␈↓#si-1␈↓#
␈↓ ↓Xn␈↓#
␈↓ α*␈βO␈¬∧(You must do ␈¬π1␈¬∂⊂'400;␈¬∧ or equivalent before the syntax of nesting (below) will be allowed.)
␈↓ ↓H␈βo␈¬∂\!sbp(X,(\f9i)-1,(\f9n));␈↓ ¬H\;Inside multiple-nested, everything is quoted
␈↓ ↓H␈β

␈¬∂\; Thus evaluation of \f9i doesn't occur while binding, but later
␈↓ ↓H␈β
)␈¬∧X␈¬	␈↓#si␈¬¬␈↓#s-1␈¬	␈↓#
␈↓ ↓Xn␈↓#
␈↓ ↓H␈β
f␈¬∂\; \!sbp(X,\f9i-1,\f9n); would not have worked
␈↓ ↓H␈β∞"␈¬∂\!sbp(X,(i,j+1),n);␈↓ ∧H\;Even commas are quoted rather than breaking to next arg
␈↓ ↓H␈β∞>␈¬∧X␈¬¬␈↓#si,j+1␈↓#
␈↓ ↓Xn␈↓#
␈↓ ↓H␈β∂∞␈¬∂\!sbp[X,i,(n)];␈↓ ∧H\;Nesting only applies to the particular nesting pair in use
␈↓ 	∪␈¬α 20␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 21␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬∧X␈¬¬␈↓#si␈↓#
␈↓ ↓X(n)␈↓#
␈↓ ↓H␈βα_␈¬∂\!sbp(X,i,((n)));␈↓ ∧H\;Only the pair at comma-level are snarfed
␈↓ ↓H␈βα4␈¬∧X␈¬¬␈↓#si␈↓#
␈↓ ↓X(n)␈↓#
␈↓ ↓H␈ββ∧␈¬∂\!sig;\!sbp(,i=1,n);␈↓ ∧H\;Null args are just as good as any others
␈↓ ↓H␈ββ ␈¬∞␈↓#sS␈¬¬␈↓#si=1␈↓#
␈↓ ↓ln␈↓#
␈↓ ↓H␈ββ{␈¬∂\!sbp(NESTING CHARACTERS:,⊗⊗//↓↓∂∂||""∧∧∨∨∪∪∩∩↑↑!!$$%%)|() [] {} <> ≤≥ ⊂⊃ →←|;\;
␈↓ ↓H␈β∧→␈¬∂\;Sometimes you want to pick a nesting character you aren't using in the body
␈↓ ↓H␈β∧5␈¬∧NESTING CHARACTERS:␈¬¬␈↓#s⊗⊗//↓↓∂∂||""∧∧∨∨∪∪∩∩↑↑!!$$%%␈↓#
␈↓ βk() [] {} <> ≤≥ ⊂⊃ →←␈↓#
␈↓ ↓H␈⬬␈¬∂\!sbp[X,f(i,j),n+2];␈↓ ∧H\;Avoid expressions like this, their implementation may change
␈↓ ↓H␈β¬!␈¬∧X␈¬¬␈↓#sf(i␈↓#
␈↓ ↓Xj)␈↓#
␈↓ ↓H␈β¬q␈¬∂\; -- Define a bunch of month names as if they were elements of an array almost
␈↓ ↓H␈βε∂␈¬∂\∞MONTH1⊂January⊃\∞MONTH2⊂February⊃\∞MONTH3⊂March⊃\;
␈↓ ↓H␈βε-␈¬∂\∞MONTH4⊂April⊃\∞MONTH5⊂May⊃\∞MONTH6⊂June⊃\;
␈↓ ↓H␈βεK␈¬∂\∞MONTH7⊂July⊃\∞MONTH8⊂August⊃\∞MONTH9⊂September⊃\;
␈↓ ↓H␈βεi␈¬∂\∞MONTH10⊂October⊃\∞MONTH11⊂November⊃\∞MONTH12⊂December⊃\;
␈↓ ↓H␈βπ%␈¬∂\8MONTH(NSTR)[\!MONTH⊗NSTR⊗;]\; -- Generates the name of month, takes decimal string
␈↓ ↓H␈βπa␈¬∂\u'400101;\;␈↓ εHACCTIM UUO = CALLI 400101
␈↓ ↓H␈βπ␈␈¬∂\L=-18;\/=31;\→D\%=12;\+=1;\→M\;␈↓ εHMonth number in register M now.
␈↓ ↓H␈βλ≥␈¬∂\!MONTH(\DM);\; ␈↓ ¬H(1) Scan and evaluate and bind argument, resulting
␈↓ ↓H␈βλ;␈¬∂\;␈↓ ¬H  in effectively \!MONTH(4); if this is still April
␈↓ ↓H␈βλY␈¬∂\;␈↓ ¬H  (it was when this paragraph was first written)
␈↓ ↓H␈βλw␈¬∂\;␈↓ ∧H(2) Call macro with argument list to generate a splice
␈↓ ↓H␈β	∃␈¬∂\;␈↓ ∧H  in the input stream, which reads: \!MONTH4;
␈↓ ↓H␈β	3␈¬∂\;␈↓ βH(3) Continue reading characters from whatever the input stream is now,
␈↓ ↓H␈β	Q␈¬∂\;␈↓ βH  namely the string \!MONTH4; followed by the rest of the input file.
␈↓ ↓H␈β	o␈¬∂\;␈↓ αH(4) The \!MONTH4; now binds an empty list of args, calls the macro MONTH4,
␈↓ ↓H␈β

␈¬∂\;␈↓ αH  and splices the string April into the input stream, which is then read
␈↓ ↓H␈β
+␈¬∂\;␈↓ αH  and output in the current mode (pass-as-is in this example).
␈↓ ↓H␈β
I␈¬∧May
␈↓ ↓H␈β¬␈¬αLISP␈α
programmers␈α
will␈α
note␈α
that␈α
this␈α
is␈αquite␈αsimilar␈αto␈αthe␈αway␈αEXPRs␈αare␈αevaluated␈αin␈αLISP.␈α_In
␈↓ ↓H␈β#␈¬αfact,␈α∩the␈α∩following␈α∩macro␈α∩definition␈α∩will␈α∩create␈α∩a␈α∩macro␈α∩that␈α∩acts␈α∩like␈α∩EVAL␈α⊃in␈α⊃LISP,␈α⊃namely
␈↓ ↓H␈βA␈¬αEVAL(expression)␈α∃causes␈α∃expression␈α∃to␈α∃get␈α∀evaluated␈α∀twice,␈α∀once␈α∀while␈α∀evaluating␈α∀and␈α∀binding
␈↓ ↓H␈β←␈¬αarguments,␈α
and␈α
then␈α
again␈α
when␈α
the␈α
result␈α
of␈α
the␈α
macro␈α
expansion␈α
is␈αseen␈αin␈αthe␈αinput␈αstream.␈α_The
␈↓ ↓H␈β⎇␈¬αusefulness␈αof␈αthis␈α
is␈α
that␈α
you␈α
can␈α
patch␈α
together␈α
various␈α
strings,␈α
some␈α
quoted␈α
(you␈α
get␈α
what␈α
you␈α
had␈α
in
␈↓ ↓H␈β~␈¬αthe␈α∂input␈α∂file)␈α∂and␈α∂some␈α∂resulting␈α∂from␈α∂macro␈α∂calls␈α∂or␈α∂commands␈α∂like␈¬π␈α∂1␈¬∂D␈¬α,␈α∂and␈α∂then␈α∞the␈α∞resultant
␈↓ ↓H␈β:␈¬αstring␈αgets␈αevaluated␈αas␈αif␈αit␈αhad␈αbeen␈αin␈αyour␈αinput␈αfile␈αall␈αalong.␈α⊗For␈αexample,␈αthe␈αabove␈αeffect␈αof
␈↓ ↓H␈βX␈¬αMONTH(NSTR)␈α
can␈α
be␈α
obtained␈α
by␈α
calling␈α
EVAL␈α
with␈α
the␈α
appropriately␈α
constructed␈α
argument.
␈↓ ↓H␈βv␈¬∂\8EVAL(expr)[⊗expr⊗]\;␈↓ εHAs described above
␈↓ ↓H␈β
∀␈¬∂\!EVAL[[\!MONTH(]\DM);];\;␈↓ ¬H(1) The following is output to the argument body:
␈↓ ↓H␈β
2␈¬∂\;␈↓ ¬H  (a) The quoted string \!MONTH(
␈↓ ↓H␈β
P␈¬∂\;␈↓ ¬H  (b) The decimal string value of register M
␈↓ ↓H␈β
n␈¬∂\;␈↓ ¬H  (c) The close-parenthesis and semicolon
␈↓ ↓H␈β∞␈¬∂\;␈↓ ∧H(2) The string spliced in is \!MONTH(4); if this is still April
␈↓ ↓H␈β∞*␈¬∂\!EVAL[\\!MONTH(\DM);];\; An older way that still works, quote the escape character by \\
␈↓ ↓H␈β∞H␈¬∂\; -- you see it below done both ways on the same line, no difference in effect --
␈↓ ↓H␈β∞f␈¬∧MayMay
␈↓ ↓H␈β∂"␈¬∂\; Evaluate a macro and use the result as a brick command to evaluate:
␈↓ 	∪␈¬α 21␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 22␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬∂\!EVAL(\\\!FOO;);\; Like \\!FOO; parsed right-to-left sort-of
␈↓ ↓H␈βα∧␈¬∂$8RECURSExFOO(N)[$F3(FOO)$←=⊗N⊗;$-=1;$?RECURSExFOO($D∀);]
␈↓ ↓H␈βα"␈¬∂$; the above macro explicitly calls itself with one less than its argument
␈↓ ↓H␈βα@␈¬∂$!RECURSExFOO{15};$; {} are just as good as () in such places as here
␈↓ ↓H␈ββ~␈¬β(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)
␈↓ α_␈ββt␈¬βHere␈α∞is␈α∞a␈α∞macro␈α∞that␈α∞can␈α∞be␈α∞used␈α∞to␈α∞compile␈α∞page␈α∞numbers␈α∞into␈α∞a␈α
table␈α
of␈α
contents␈α
or␈α
index,
␈↓ ↓H␈β∧∩␈¬βproviding␈α∪that␈α∪the␈α∪contents␈α∩or␈α∩index␈α∩appears␈α∩in␈α∩the␈α∩output␈α∩file␈α∩after␈α∩all␈α∩referenced␈α∩items␈α∩have
␈↓ ↓H␈β∧0␈¬βoccurred.␈α$This␈α∩is␈α∩the␈α∩macro␈α⊃used␈α⊃in␈α⊃the␈α⊃POX␈α⊃writeup␈α⊃to␈α⊃make␈α⊃the␈α⊃contents␈α⊃and␈α⊃appendix␈α⊃page
␈↓ ↓H␈β∧N␈¬βreferences.
␈↓ αH␈β∧l␈¬∂$8DEFCONT(ITEM)[$!EVAL(($∞CX⊗ITEM⊗{)$←#$¬=10;$?SPACEXY;$D#(}));]$;
␈↓ α_␈β¬
␈¬βThe␈αthree␈αtypes␈αof␈αnesting␈αcharacters,␈¬∂␈α[]␈α()␈¬β␈αand␈α{},␈αare␈αused␈αto␈αisolate␈αnesting␈αprocessing␈αinto
␈↓ ↓H␈β¬(␈¬βthree␈αlevels␈αin␈αwhich␈αthe␈αother␈αnesting␈αcharcters␈αare␈αpassed␈α
as␈α
text.␈α∀This␈α
macro␈α
assumes␈α
that␈α
register
␈↓ ↓H␈β¬F␈¬∂#␈¬β␈α∪always␈α∪contains␈α∩the␈α∩correct␈α∩page␈α∩number,␈α∩and␈α∩that␈α∩there␈α∩is␈α∩a␈α∩macro␈α∩called␈α∩"SPACEXY"␈α∩which
␈↓ ↓H␈β¬d␈¬βgenerates␈αan␈αASCII␈α040␈α(space)␈αcharacter␈αto␈αbe␈αused␈αas␈αzero-fill␈αto␈αthe␈αleft␈αof␈αone-digit␈αnumbers,␈αand
␈↓ ↓H␈βεα␈¬βthat␈α
page␈α
numbers␈α
above␈α
99␈α
do␈α
not␈α
occur.␈α~Here's␈α
a␈α
detailed␈α
description␈αof␈αwhat␈αhappens␈αwhen␈αthis
␈↓ ↓H␈βε ␈¬βmacro␈α
is␈α
used:
␈↓ α_␈βε>␈¬∂$8␈¬β...;␈αat␈αstart␈αof␈αthe␈αfile␈α--␈αA␈αmacro␈αwith␈αarguments␈αis␈αset␈αup,␈αwith␈αthe␈αname␈α"DEFCONT",␈αand␈αthe
␈↓ ↓H␈βε\␈¬βbody␈α<BRICK>␈α"!EVAL(("␈α<BRICK>␈α"∞CX"␈α<ARG␈α
1>␈α
{)"␈α
<BRICK>␈α
"←#"␈α
<BRICK>␈α
"¬=10;"␈α
<BRICK>␈α
"?SPACEXY;"
␈↓ ↓H␈βεy␈¬β<BRICK>␈α"D#(}));"␈αwhere␈α<BRICK>␈αdenotes␈αthe␈¬␈α1␈¬β␈αtoken␈α(stored␈αinternally␈αas␈α177,175),␈α<ARG␈α1>␈αdenotes
␈↓ ↓H␈βπ→␈¬βthe␈αargument-number-1␈αtoken␈α
(stored␈α
internally␈α
as␈α
177,001),␈α
and␈α
other␈α
parts␈α
are␈α
between␈α
quote␈α
marks
␈↓ ↓H␈βπ7␈¬βhere␈αto␈αavoid␈α
ambiguity␈α
as␈α
you␈α
try␈α
to␈α
read␈α
this.␈α∀(This␈α
assumes␈α
you␈α
have␈α
VERESC␈α
turned␈α
on.␈α∀Otherwise
␈↓ ↓H␈βπT␈¬βyou␈α∞just␈α∞get␈α∞the␈α∞dollar-sign␈α∞character␈α∞in␈α∞the␈α∞macro␈α∞body␈α∞instead␈α
of␈α
the␈¬␈α
1␈¬β␈α
token,␈α
and␈α
what␈α
happens
␈↓ ↓H␈βπt␈¬βlater␈α
in␈α
this␈α
example␈α
when␈α
"␈¬∂\␈¬β"␈α
is␈α
the␈α
brick␈α
character␈α
won't␈α
work.)
␈↓ α_␈βλ∩␈¬β\DEFCONT(A3);␈αat␈αthe␈αlocation␈αin␈αthe␈αfile␈αdesired␈α("␈¬∂\␈¬β"␈αhappens␈αto␈αbe␈αthe␈αbrick␈α
character␈α
here)␈α
--
␈↓ ↓H␈βλ0␈¬βThe␈α
body␈α
of␈α
the␈αDEFCONT␈αmacro␈αis␈αpatched␈αinto␈αthe␈αinput␈αstream,␈αand␈αin␈αthe␈αprocess␈αof␈αreading␈αit␈αin
␈↓ ↓H␈βλM␈¬βthe␈α
<BRICK>␈α
and␈α
<ARG␈α1>␈αare␈αreplaced␈αby␈α"␈¬1␈¬β"␈αand␈α"␈¬∂A3␈¬β"␈αrespectively,␈αresulting␈αin␈αthe␈αfollowing␈αstring
␈↓ ↓H␈βλm␈¬βbeing␈α
effectively␈α
in␈α
the␈α
input␈α
stream:␈α∀"␈¬∂\!EVAL((\∞CXA3{)\←#\¬=10;\?SPACEXY;\D#(}));␈¬β".
␈↓ α_␈β	␈¬βThe␈α∞"EVAL"␈α∞macro␈α∞is␈α
then␈α
called,␈α
and␈α
in␈α
the␈α
process␈α
of␈α
binding␈α
its␈α
one␈α
argument␈α
the␈α
following
␈↓ ↓H␈β	)␈¬βhappens:␈α
(1)␈α
The␈α
string␈α
"␈¬∂\∞CXA3{␈¬β"␈α
is␈αpassed␈αas␈α(quoted)␈αtext;␈α(2)␈αRegister␈¬∂␈α#␈¬β␈αis␈αfetched␈αand␈αtested␈αto
␈↓ ↓H␈β	G␈¬βsee␈α_if␈α_it␈α_is␈α↔less␈α↔than␈α↔ten,␈α↔if␈α↔so␈α↔the␈α↔SPACEXY␈α↔macro␈α↔generates␈α↔a␈α↔space␈α↔character␈α↔(in␈α↔the
␈↓ ↓H␈β	e␈¬βargument-to-EVAL␈α∞being␈α∞constructed);␈α∞(3)␈α
Register␈¬∂␈α
#␈¬β␈α
is␈α
fetched␈α
again␈α
,␈α
converted␈α
into␈α
decimal␈α
string,
␈↓ ↓H␈β
β␈¬βand␈αappended␈αto␈αthe␈αargument;␈α(4)␈αThe␈αstring␈α"␈¬∂}␈¬β"␈α(one␈αcharacter)␈α
is␈α
passed␈α
(quoted);␈α
(5)␈α
The␈α
input␈α
text
␈↓ ↓H␈β
!␈¬β"␈¬∂);␈¬β"␈α
terminates␈α
the␈αbinding␈αof␈αthe␈αfirst␈αargument,␈αand␈αterminates␈αall␈αbinding␈αfor␈αthe␈αcall␈αof␈αEVAL,␈αand
␈↓ ↓H␈β
?␈¬βthe␈α
body␈α
of␈α
EVAL,␈α
which␈α
consists␈α
solely␈α
of␈α
the␈α
<ARG␈α
1>␈α
token,␈α
is␈α
patched␈α
into␈α
the␈α
input␈α
stream.
␈↓ α_␈β
]␈¬βThus␈αif␈αthis␈αis␈αdone␈αon␈αpage␈α5,␈αthe␈αstring␈α"␈¬∂\∞CXA3{␈α5}␈¬β"␈α(the␈αargument)␈αis␈αnow␈αeffectively␈αin␈αthe
␈↓ ↓H␈β
{␈¬βinput␈α
stream.␈α∀Upon␈α
reading␈α
all␈α
that␈α
(generated)␈α
input,␈α
the␈α
macro␈α
"CXA3"␈α
is␈α
defined,␈α
with␈α
body␈α
"␈¬∂␈α
5␈¬β".
␈↓ α_␈β_␈¬βLater,␈α
for␈α
example␈α
in␈α
the␈α
table␈α
of␈α
contents␈α
page,␈α
the␈αstring␈¬␈α1␈¬∂!CXA3;␈¬β␈αwill␈αgenerate␈αthe␈αcorrect
␈↓ ↓H␈β8␈¬βpage␈α
reference␈α
for␈α
item␈α
A3␈α
in␈α
the␈α
document,␈α
namely␈α
the␈α
string␈α
"␈¬∂␈α
5␈¬β"␈α
in␈α
this␈α
case.
␈↓ α␈βt␈¬βHere is the setup for the EVERYPAGE macro that was used in this writeup (\ is escape char.):
␈↓ ↓H␈β⊃␈¬∂\!ACCTIM;\; load a register with system date-time by means of the ␈¬1␈¬∂u command
␈↓ ↓H␈β1␈¬∂\!EVAL((\∞TODAY[)\!DATIME;(]));\;
␈↓ ↓H␈βO␈¬∂\; call DATIME (in DATIME.POX[1,REM]) and hardwire the result into the TODAY macro
␈↓ ↓H␈βm␈¬∂\∞IDENT[POX writeup -- compiled by POX on ]\;
␈↓ ↓H␈β
␈¬∂\oEP1[2\!IDENT;\!TODAY; -- page ]\; hardwire all but the page number into an overlay
␈↓ βk␈β
)␈¬βand here is the actual macro definition ($ is escape char.):
␈↓ ↓H␈β
G␈¬∂$8EVERYPAGE(dummyarg)[$←#$+=1;$→#$oEP2{2 $D#}$&EP←EP1&EP2;$N
␈↓ ↓H␈β
e␈¬∂$QA$1EP;$→A$2EP;$¬A$/=2;$+=850;$→A$N
␈↓ ↓H␈β∞β␈¬∂$WEP,A=150;$WEP,A=2100;$qA]$; generate page number, combine overlays, align
␈↓ α_␈β∞?␈¬βNote␈αthat␈αsome␈αtricky␈αthings␈αwere␈αdone␈α
in␈α
creating␈α
the␈α
everypage␈α
macro␈α
so␈α
that␈α
the␈α
time-of-day
␈↓ ↓H␈β∞]␈¬βwouldn't␈αbe␈αrecompiled␈αon␈αevery␈αpage␈α(otherwise␈αif␈αthe␈αsystem␈αwere␈α
very␈α
busy,␈α
each␈α
page␈α
might␈α
have
␈↓ ↓H␈β∞{␈¬βa␈α≥different␈α≤time-of-compilation).␈α8(Now␈α≤that␈α≤this␈α≤writeup␈α≤uses␈α≤time-last-edited␈α≤instead␈α≤of
␈↓ ↓H␈β∂→␈¬βcurrent-time-during-compiling,␈α∩for␈α∩page␈α∩headings,␈α∩avoiding␈α∩recompiling␈α⊃the␈α⊃header␈α⊃merely␈α⊃saves␈α⊃a
␈↓ ↓H␈β∂7␈¬βslight␈αamount␈αof␈αtime␈αduring␈αcompilation.)␈α⊗In␈αgeneral,␈αin␈αPOX␈αthe␈αorder␈αof␈αevaluation␈αof␈αarguments␈αmay
␈↓ 	∪␈¬α 22␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 23␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬βbe␈α∂controlled␈α∂by␈α∂means␈α∂of␈α∂calls␈α∂to␈α∂EVAL␈α∂(to␈α∂cause␈α∂an␈α∂extra␈α∂evaluation␈α∂to␈α∂occur)␈α∞and␈α∞using␈α∞nesting
␈↓ ↓H␈β↓f␈¬βcharacters␈α∂to␈α∂quote␈α∂portions␈α∂of␈α∂arguments␈α∂(to␈α∂suppress␈α∂or␈α∂postpone␈α∂an␈α∂evaluation).␈α≡The␈α∞following
␈↓ ↓H␈βα∧␈¬βexample␈α
should␈α
show␈α
you␈α
some␈α
of␈α
the␈α
options␈α
you␈α
can␈α
create␈α
by␈α
use␈α
of␈α
this␈α
technique.
␈↓ α_␈βα"␈¬βSuppose␈αthat␈αMONTHNUMBER␈αis␈αa␈αmacro␈αthat␈αasks␈αthe␈αsystem␈α
for␈α
the␈α
date␈α
and␈α
time,␈α
and␈α
decodes
␈↓ ↓H␈βα@␈¬βthe␈αnumber␈αof␈αmonth␈α(0␈αto␈α11␈αdecimal)␈αleaving␈αit␈αin␈αregister␈αM.␈α⊗Suppose␈αthat␈αMONTH1␈αis␈αa␈αmacro␈αthat
␈↓ ↓H␈βα↑␈¬βis␈α∩the␈α∩ASCII␈α∩name␈α∩of␈α∩the␈α∩first␈α∩month␈α⊃(January)␈α⊃etc.␈α⊃up␈α⊃to␈α⊃MONTH12␈α⊃=␈α⊃December.␈α"Suppose␈α⊃that
␈↓ ↓H␈βα|␈¬βMONTHN(n)␈α∞is␈α∞a␈α∞macro␈α∞with␈α∞one␈α∞argument␈α∞that␈α∞concatenates␈α∞the␈α∞string␈α∞"␈¬∂$!MONTH␈¬β"␈α∞with␈α∞its␈α
argument
␈↓ ↓H␈ββ~␈¬β(assumed␈αto␈αbe␈αa␈α
decimal␈α
number␈α
string)␈α
and␈α
with␈α
a␈α
semicolon,␈α
so␈α
that␈α
for␈α
example␈α
"␈¬∂$!MONTHN(3)␈¬β;"␈α
will
␈↓ ↓H␈ββ8␈¬βpatch␈α
"␈¬∂$!MONTH3;␈¬β"␈α
into␈α
the␈α
input␈αstream␈αwhich␈αwill␈αthen␈αgenerate␈α"␈¬∂March␈¬β".␈α_The␈αfollowing␈αcommands
␈↓ ↓H␈ββV␈¬βwill␈α
then␈α
generate␈α
the␈α
correct␈α
result,␈α
assuming␈α
this␈α
month␈α
is␈α
neither␈α
January␈α
nor␈α
December:
␈↓ ↓H␈ββt␈¬∂$!MONTHNUMBER;$;
␈↓ ↓H␈β∧∩␈¬∂This month is $!MONTHN($DM); and next month is $!MONTHN($←M$+=1;$D∀);.
␈↓ ↓H␈β∧0␈¬∂Last month was $!MONTHN($←M$-=1;$D∀);.
␈↓ α_␈β∧N␈¬βNote␈α∞that␈α
if␈α
the␈α
contents␈α
of␈α
register␈α
M␈α
are␈α
changed,␈α
the␈α
result␈α
of␈α
calling␈α
MONTH($DM)␈α
changes
␈↓ ↓H␈β∧l␈¬βaccordingly,␈α
and␈α
if␈α
any␈α
of␈α
the␈α
MONTH1␈α
MONTH2␈α
...␈αMONTH12␈αmacros␈αare␈αchanged␈α(such␈αas␈αto␈αa␈αset␈αof
␈↓ ↓H␈β¬
␈¬βabbreviations␈αfor␈αthe␈αmonths)␈αthen␈αthe␈α
result␈α
of␈α
calling␈α
MONTHN␈α
will␈α
change␈α
in␈α
the␈α
particular␈α
cases␈α
that
␈↓ ↓H␈β¬(␈¬βwere␈α⊃changed.␈α"That␈α⊃is␈α⊃because␈α⊃register␈α⊃M␈α⊃is␈α⊃referenced␈α⊃and␈α⊃macros␈α⊂MONTHN($DM)␈α⊂and␈α⊂MONTH6
␈↓ ↓H␈β¬F␈¬β(assuming␈αthis␈αis␈αstill␈αJune)␈αare␈αcalled␈αevery␈αtime␈¬∂␈α
$!MONTH($DM);␈¬β␈α
appears␈α
in␈α
the␈α
input␈α
stream.␈α∀Thus␈α
if
␈↓ ↓H␈β¬d␈¬βTHISMONTH␈α⊂is␈α⊂defined␈α⊂as␈α⊂the␈α⊂successive␈α∂calling␈α∂of␈α∂MONTHNUMBER␈α∂and␈α∂MONTH($DM)␈α∂then␈α∂everytime
␈↓ ↓H␈βεα␈¬βTHISMONTH␈α∞is␈α∞called␈α∞register␈α∞M␈α∞will␈α∞be␈α
clobbered␈α
and␈α
MONTHN($DM)␈α
and␈α
MONTH6␈α
will␈α
be␈α
called.␈α~By
␈↓ ↓H␈βε ␈¬βappropriate␈α∂control␈α∂of␈α∂evaluation,␈α∂it␈α∂is␈α∂possible␈α∂to␈α∂call␈α∂some␈α∂of␈α∂those␈α∂things␈α∂once␈α∂at␈α∂the␈α∂beginning
␈↓ ↓H␈βε>␈¬β(when␈α
THISMONTH␈α
is␈α
defined)␈α
and␈α
hardwire␈α
their␈α
results␈α
into␈α
the␈α
definition␈α
of␈α
THISMONTH:
␈↓ ↓H␈βε\␈¬∂$!EVAL(($∞THISMONTH[)$!MONTHNUMBER;$!MONTHN($DM);(]))$;
␈↓ ↓H␈βεz␈¬∂$; "$∞THISMONTH[" is quoted, "$!MONTHNUMBER;" and "$!MONTH;" are called
␈↓ ↓H␈βπ_␈¬∂$; resulting in the string "June" if it is still June, "]" is quoted, and
␈↓ ↓H␈βπ6␈¬∂$; all these parts are concatenated into one string which is passed to
␈↓ ↓H␈βπT␈¬∂$; EVAL as its argument "$∞THISMONTH[June]" which is then patched into
␈↓ ↓H␈βπr␈¬∂$; the input stream, causing THISMONTH to be permanently defined as "June".
␈↓ ↓H␈βλ.␈¬∂$!EVAL(($∞THISMONTH[)$!MONTHNUMBER;($!MONTHN{)$DM(};]))$;
␈↓ ↓H␈βλL␈¬∂$; "$∞THISMONTH[" is quoted, "$!MONTHNUMBER;" is called resulting in register
␈↓ ↓H␈βλj␈¬∂$; M getting defined now, "$!MONTHN{" is quoted, the decimal conversion of
␈↓ ↓H␈β	λ␈¬∂$; the contents of M we have just computed earlier come next, then "};]"
␈↓ ↓H␈β	&␈¬∂$; is quoted, and all the above is concatenated into
␈↓ ↓H␈β	D␈¬∂$; "$∞THISMONTH[$!MONTHN{6};]" which causes THISMONTH to be defined so as
␈↓ ↓H␈β	b␈¬∂$; to call MONTHN(6) every time.  Thus register M is freed for other use
␈↓ ↓H␈β
␈¬∂$; without affecting THISMONTH but redefinition of MONTH6 will cause
␈↓ ↓H␈β
≡␈¬∂$; THISMONTH to change accordingly.
␈↓ ¬∀␈β
X␈¬ALTERNATE OUTPUT FILES
␈↓ α_␈β
{␈¬βWhereas␈αthe␈¬␈α1␈¬∂@␈¬β␈αcommand␈αreads␈α
in␈α
a␈α
file␈α
and␈α
processes␈α
it␈α
as␈α
if␈α
the␈α
text␈α
in␈α
it␈α
had␈α
been␈α
edited␈α
into
␈↓ ↓H␈β≠␈¬βthe␈α∞main␈α∞input␈α∞file,␈α∞the␈α∞commands␈α∞in␈α∞this␈α∞section␈α∞are␈α∞used␈α∞to␈α∞write␈α∞text␈α∞into␈α∞a␈α∞file␈α
(overwriting␈α
any
␈↓ ↓H␈β9␈¬βexisting␈α
file␈α
by␈α
the␈α
same␈α
name),␈α
usually␈α
for␈α
the␈α
purpose␈α
of␈α
reading␈α
it␈α
back␈αin␈αlater␈αand␈αprocessing␈αit
␈↓ ↓H␈βW␈¬βfurther␈α∂at␈α∂that␈α∂time.␈α≡Thus␈α∂a␈α∂table␈α∂of␈α∂contents␈α∂or␈α∞a␈α∞batch␈α∞of␈α∞footnotes␈α∞can␈α∞be␈α∞generated␈α∞over␈α∞the
␈↓ ↓H␈βu␈¬βcourse␈αof␈αa␈αcomplete␈αdocument␈αor␈αa␈αchapter,␈αthen␈αread␈αback␈αin␈αat␈αthe␈αend␈αand␈αemitted␈αfully␈αprocessed
␈↓ ↓H␈β∪␈¬βinto␈αthe␈αmain␈α(.XGP)␈αoutput␈αfile.␈α⊗A␈α
table␈α
of␈α
contents␈α
emitted␈α
at␈α
the␈α
end␈α
of␈α
a␈α
document␈α
can␈α
of␈α
course␈α
be
␈↓ ↓H␈β1␈¬βmoved␈α
up␈α
to␈α
the␈α
front␈α
of␈α
the␈α
document␈α
before␈α
binding.
␈↓ ↓H␈βN␈¬1␈¬∂<␈¬εq␈¬¬<FILNAM>␈¬∂;␈¬β␈↓ β⊂(U␈αJ␈αCR␈αo)␈α--␈αopen␈αthe␈αfile␈¬¬␈α<FILNAM>␈¬β␈αon␈αlogical␈αi/o␈αchannel␈¬ε␈αq␈¬β.␈α⊗Available
␈↓ β⊂␈βv␈¬βlogical␈αchannels␈αare␈α
numbered␈α
from␈α
1␈α
to␈α
approximately␈α
10␈α
(decimal)␈α
so␈α
I
␈↓ β⊂␈β
∀␈¬βdon't␈α∞expect␈α∞any␈α∞normal␈α∞users␈α∞to␈α∞run␈α∞out␈α∞of␈α∞channels.␈α≠The␈α
following
␈↓ β⊂␈β
2␈¬βcommand,␈α∂for␈α∂example,␈α∂will␈α∂create␈α∂the␈α∂file␈¬∂␈α∞CONT.TMP␈¬β␈α∞on␈α∞your␈α∞default
␈↓ β⊂␈β
O␈¬β(DSKPPN)␈α
disk␈α
area:␈¬␈α∀1␈¬∂<=1;CONT.TMP;␈¬β␈α
.
␈↓ ↓H␈β
n␈¬1␈¬∂=␈¬εq␈¬¬<OPEN><TEXT><CLOSE>
␈↓ ↓H␈β∞⊃␈¬β  ␈↓ β⊂(U␈α
J␈α
CR␈α
o␈α
A)␈α
--␈α
select␈α
logical␈αi/o␈αchannel␈¬ε␈αq␈¬β␈αfor␈αoutput,␈αparse␈αthe␈αtext
␈↓ β⊂␈β∞9␈¬βbetween␈α⊃matching␈¬¬␈α⊃<OPEN>␈¬β␈α⊃and␈¬¬␈α⊂<CLOSE>␈¬β␈α⊂exactly␈α⊂the␈α⊂same␈α⊂way␈α⊂as␈α⊂if␈α⊂it
␈↓ β⊂␈β∞W␈¬βwere␈α
an␈α
argument␈α
to␈αa␈αmacro␈α(except␈αthat␈αcomma␈αdoesn't␈αcause␈αbreak
␈↓ β⊂␈β∞u␈¬βin␈αparsing␈αbecause␈αonly␈αone␈α"argument"␈αis␈αever␈αparsed).␈α⊗The␈αresult␈αof
␈↓ β⊂␈β∂∪␈¬βparsing␈α∂the␈α∂text␈α∂is␈α∂written␈α∂into␈α∂the␈α∞file␈α∞open␈α∞on␈α∞that␈α∞channel.␈α≤After
␈↓ β⊂␈β∂1␈¬βreaching␈¬¬␈α⊗<CLOSE>␈¬β␈α⊗the␈α⊗output␈α⊗is␈α⊗switched␈α⊗back␈α⊗to␈α⊗normal␈α⊗but␈α∃the
␈↓ 	∪␈¬α 23␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 24␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ β⊂␈β↓H␈¬βalternate␈α∂output␈α∂file␈α∂is␈α∞left␈α∞open␈α∞in␈α∞case␈α∞additional␈¬␈α∞1␈¬∂=␈¬β␈α∞commands␈α∞are
␈↓ β⊂␈β↓h␈¬βissued.␈α4Of␈α~course,␈α~if␈α~several␈α→alternate␈α→output␈α→files␈α→are␈α→open
␈↓ β⊂␈βαε␈¬βsimultaneously,␈α∞chunks␈α∞of␈α∞text␈α
may␈α
be␈α
emitted␈α
into␈α
them␈α
in␈α
whichever
␈↓ β⊂␈βα#␈¬βsequence␈α∞the␈α∞user␈α∞desires␈α∞by␈α
using␈α
one␈¬␈α
1␈¬∂=␈¬β␈α
command␈α
for␈α
each␈α
chunk.
␈↓ β⊂␈βαC␈¬β(Note,␈α⊂just␈α⊂as␈α⊂in␈α⊂arguments␈α⊂to␈α⊂macros,␈α⊂only␈α⊂pure␈α⊂ASCII␈α⊂text␈α⊂may␈α∂be
␈↓ β⊂␈βαa␈¬βgenerated,␈α∞not␈α∞XGP␈α∞escape␈α∞sequences␈α∞like␈α∞font␈α∞selects␈α∞etc.␈α~Typically
␈↓ β⊂␈βα␈␈¬βwhat␈α
is␈αemitted␈αare␈αsequences␈αthat␈αinclude␈αthe␈αbrick␈αcharacter,␈αquoted
␈↓ β⊂␈ββ≥␈¬βso␈α⊂that␈α⊂the␈α∂brick␈α∂characters␈α∂are␈α∂actually␈α∂emitted␈α∂into␈α∂the␈α∂file␈α∂rather
␈↓ β⊂␈ββ;␈¬βthan␈α∪evaluated␈α∪now,␈α∪then␈α∪when␈α∪the␈α∪file␈α∩is␈α∩read␈α∩back␈α∩in␈α∩the␈α∩brick
␈↓ β⊂␈ββY␈¬βcommands␈α
will␈α
be␈α
evaluated␈α
(executed).)
␈↓ ↓H␈ββv␈¬1␈¬∂>␈¬εq␈¬β␈↓ β⊂(U␈αJ␈αCR␈αo)␈α--␈αclose␈αthe␈αfile␈αon␈αlogical␈αi/o␈αchannel␈¬ε␈αq␈¬β.␈α∃This␈α
must␈α
be␈α
done
␈↓ β⊂␈β∧≡␈¬βbefore␈α
the␈α
file␈α
can␈α
be␈α
read␈α
back␈α
in␈α
or␈α
accessed␈α
by␈α
another␈α
program.
␈↓ ↓H␈β∧;␈¬1␈¬∂E␈¬¬<IN>␈↓#v1␈↓#<OUT>␈↓#v1␈↓# ... <IN>␈↓#vn␈↓#<OUT>␈↓#vn␈¬∂;
␈↓ ↓H␈β∧c␈¬β   ␈↓ β⊂(U␈αJ␈αCR␈αo␈αA)␈α
--␈α
start␈α
up␈α
a␈α
pseudo-teletype␈α
inferior␈α
job␈α
under␈α
POX,␈α
type
␈↓ β⊂␈β¬↓␈¬¬<IN>␈↓#v1␈¬β␈α∂into␈α∂it,␈α∂wait␈α∞until␈α∞it␈α∞types␈α∞out␈α∞all␈α∞of␈¬¬␈α∞<OUT>␈↓#v1␈¬β,␈α∞continue␈α∞alternating
␈↓ β⊂␈β¬'␈¬βinput␈αand␈αwait␈αfor␈αoutput␈αthrough␈¬¬␈α<OUT>␈↓#vn␈¬β,␈αthen␈αrelease␈αthe␈αPTY.␈α⊗This␈α
is
␈↓ β⊂␈β¬M␈¬βuseful␈αfor␈αrunning␈αSSORT␈αacross␈αa␈αfile␈αthat␈αhas␈αbeen␈α
written␈α
out␈α
during
␈↓ β⊂␈β¬k␈¬βcompilation␈αof␈αa␈αdocument␈αbefore␈αreading␈αit␈αback␈αin␈αas␈αthe␈αlast␈αpart␈αof
␈↓ β⊂␈βε	␈¬βthe␈α
compilation.
␈↓ ↓H␈βεE␈¬βExample of generating footnotes for end of the chapter:
␈↓ ↓H␈βεm␈¬∂\<=2;FOOT.TMP;\←=0;\→#\N␈¬β␈↓ ¬αAt front of chapter, open file and reset page number
␈↓ ↓H␈βπ∃␈¬∂\==2;(\←#\+=1;\→#\N␈¬β␈↓ ¬)Each footnote:  Increment footnote counter, then...
␈↓ ↓H␈βπ3␈¬∂\D#\"\jMcCarthy, John, LISP 1.5 Programmer's Manual.\"\.
␈↓ ↓H␈βπQ␈¬∂)\N␈¬β␈↓ β`Emit␈α⊂footnote␈α⊂number␈α⊂in␈α⊂decimal␈α⊂at␈α⊂left␈α⊂margin,␈α∂pass␈α∂a␈α∂quoted
␈↓ β⊂␈βπo␈¬βbrick␈α∞j␈α∞command,␈α∞pass␈α∞the␈α∞text␈α∞of␈α∞the␈α∞footnote,␈α
pass␈α
a␈α
quoted␈α
brick␈α
.
␈↓ β⊂␈βλ
␈¬βcommand,␈α
de-select␈α
alternate␈α
output.␈α∀Normally␈α
all␈α
this␈α
would␈α
be␈α
defined
␈↓ β⊂␈βλ+␈¬βas␈α∩a␈α∩macro␈α∩that␈α∩took␈α∩the␈α∩text␈α∩between␈α∩the␈¬∂␈α∩\j␈¬β␈α∩and␈α∩the␈¬∂␈α∩\.␈¬β␈α∩as␈α∩an
␈↓ β⊂␈βλI␈¬βargument.
␈↓ ↓H␈βλq␈¬∂\>=2;\N␈¬β␈↓ π
At end of chapter, close the file
␈↓ ↓H␈β	∂␈¬∂\@FOOT.TXT;\N␈¬β␈↓ ¬Pand read it back in (and parse it) in one chunk.
␈↓ ∧|␈β	|␈¬ENABLING SPECIAL FEATURES
␈↓ α_␈β
∨␈¬βIn␈αthe␈αfollowing␈αthree␈αcommands,␈αthe␈αleft␈αhalf␈αof␈¬ε␈αq␈¬β,␈αspecifies␈αa␈αbatch␈αof␈αfeatures,␈αand␈αthe␈αbits␈αin
␈↓ ↓H␈β
G␈¬βthe␈α
right␈α
half␈α
specify␈α
which␈α
features␈α
in␈α
that␈α
batch␈α
are␈α
affected␈α
(or␈α
in␈α
the␈α
case␈αof␈αthe␈αfirst␈αcommand,
␈↓ ↓H␈β
e␈¬βwhich␈α
are␈α
on,␈α
since␈α
all␈α
are␈α
affected␈α
one␈α
way␈α
or␈α
the␈α
other␈α
in␈α
this␈α
obsolete␈α
command).␈α_Thus␈αyou␈αmay
␈↓ ↓H␈ββ␈¬βchange␈αas␈αmany␈αfeatures␈αin␈αone␈αbatch␈αat␈αa␈αtime,␈αbut␈αmust␈αuse␈αseparate␈αcommands␈αfor␈αeach␈α
batch.␈α∀The
␈↓ ↓H␈β!␈¬βcommands␈αare␈αgiven␈αfirst,␈αthen␈αthe␈α
descriptions␈α
of␈α
each␈α
feature,␈α
with␈α
the␈α
batch␈α
number␈α
and␈α
bit␈α
position
␈↓ ↓H␈β?␈¬β(mask)␈α∞that␈α∞correspond␈α∞to␈α∞it.␈α~All␈α
bits␈α
are␈α
initially␈α
zero,␈α
and␈α
bits␈α
not␈α
mentioned␈α
below␈α
should␈α
be␈α
left
␈↓ ↓H␈β]␈¬βthat␈α
way␈α
to␈α
allow␈α
for␈α
new␈α
bits␈α
that␈α
will␈α
be␈α
defined␈α
later.
␈↓ ↓H␈βz␈¬1␈¬∂`␈¬εq␈¬β␈↓ ββ(U)␈α--␈αset␈αspecial␈αfeatures␈αhalfword␈αfrom␈αright␈αhalf␈αof␈¬ε␈αq␈¬β␈α--␈αThis␈α
command
␈↓ ββ␈β"␈¬βis␈α∂not␈α∂recommended␈α∂because␈α∂it␈α∂clobbers␈α∂bits␈α∞you␈α∞may␈α∞have␈α∞set␈α∞earlier
␈↓ ββ␈β@␈¬βand␈α
forgotten.
␈↓ ↓H␈β]␈¬1␈¬∂⊂␈¬εq␈¬β␈↓ ββ(U)␈α
--␈αuse␈αright␈αhalf␈αof␈¬ε␈αq␈¬β␈αas␈αa␈αmask␈αfor␈αturning␈αon␈αbits,␈αleaving␈αthe␈αrest
␈↓ ββ␈β
¬␈¬βunaffected.
␈↓ ↓H␈β
"␈¬1␈¬∂⊃␈¬εq␈¬β␈↓ ββ(U)␈α--␈αuse␈αright␈αhalf␈αof␈¬ε␈αq␈¬β␈αas␈αa␈α
mask␈α
for␈α
turning␈α
off␈α
bits␈α
(a␈α
"1"␈α
in␈α
the␈α
mask
␈↓ ββ␈β
J␈¬βturns␈α∂the␈α∂bit␈α∂off,␈α∂the␈α∂same␈α∞as␈α∞the␈α∞ANDCM␈α∞instruction),␈α∞leaving␈α∞the␈α∞rest
␈↓ ββ␈β
h␈¬βunaffected.
␈↓ ↓H␈β∞ε␈¬βUntil␈α∪you␈α∪use␈α∪any␈α∪of␈α∪the␈α∪above␈α∪commands␈α∪to␈α∩change␈α∩these␈α∩flags,␈α∩all␈α∩the␈α∩bits␈α∩listed␈α∩below␈α∩are
␈↓ ↓H␈β∞$␈¬βnot-enabled␈α
(zero␈α
bit).␈α~Generally␈α
it␈α
is␈α
advisable␈α
to␈α
turn␈α
bits␈α
on␈α
at␈α
the␈α
beginning␈α
and␈α
leave␈αthem␈αon,
␈↓ ↓H␈β∞B␈¬βhowever␈αit␈αis␈αfrequently␈αuseful␈αto␈αtoggle␈αthem␈αon␈αand␈αoff.␈α_If␈αfunny␈αthings␈αcan␈αhappen␈αwith␈αtoggling,␈αI
␈↓ ↓H␈β∞`␈¬βwill␈αtry␈αto␈αwarn␈αyou␈αin␈αthe␈αdescription␈αbelow␈α--␈αplease␈α
excuse␈α
the␈α
sloppy␈α
(unjustified)␈α
appearance,␈α
the
␈↓ ↓H␈β∞}␈¬βtext␈α∂was␈α∂copied␈α∂from␈α∂the␈α∂source␈α∂program␈α∂for␈α∂POX␈α∂with␈α∂very␈α∂little␈α∂editing.␈α≡Also,␈α∂the␈α∞"$"␈α∞character
␈↓ ↓H␈β∂≠␈¬βrather␈α
than␈α
"␈¬1␈¬β"␈α
represents␈α
the␈α
brick␈α
character␈α
below.
␈↓ α_␈β∂;␈¬βI␈α∂recommend␈α∂that␈α∂all␈α∂newly-created␈α∂POX␈α∂files␈α∂turn␈α∂on␈α∞VERSMT,␈α∞VERXX1␈α∞and␈α∞VE1QES␈α∞near␈α∞the
␈↓ 	∪␈¬α 24␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 25␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬βstart␈α
of␈α
the␈α
file.␈α~Also␈αdesirable␈αmost␈αof␈αthe␈αtime␈αare␈αVERSIM,␈αVERSGK,␈αVERREM,␈αVERRHT,␈αVERESC␈αand
␈↓ ↓H␈β↓e␈¬βVE1OPN.␈α_All␈αof␈αthese␈αcan␈αbe␈αturned␈αon␈αby␈¬␈α1␈¬∂⊂'0302454;␈¬1␈¬∂⊂'1000003;␈¬β␈αat␈αthe␈αvery␈αbeginning␈αof␈αyour
␈↓ ↓H␈βα¬␈¬βsource␈α
file.␈α∀I␈α
recommend␈α
against␈α
using␈α
VER56P,␈α
VERREG␈α
and␈α
VERIDC.
␈↓ ↓H␈βα#␈¬∂; THESE BITS ARE IMPLEMENTED CURRENTLY:
␈↓ α(␈βα]␈¬Batch (left half of ␈¬εq␈¬) = 0
␈↓ ↓H␈ββ¬␈¬∂VERHHR←←000001␈↓ βH;ENABLE H AND h HEIGHT OF FONT PSEUDO-REGISTER -- Has its effect at
␈↓ ↓H␈ββ#␈¬∂  the moment you attempt using any command that takes a register as an argument,
␈↓ ↓H␈ββA␈¬∂  and you specify register "H" or "h".
␈↓ ↓H␈ββ←␈¬∂VERTRC←←000002␈↓ βH;TRACE AND OTHER TTY OUTPUT
␈↓ ↓H␈ββ⎇␈¬∂VERSIM←←000004␈↓ βH;ENABLE <LF> SIMULATOR, ENABLE SIDE EFFECT OF REGISTER ";"
␈↓ ↓H␈β∧≠␈¬∂  ;This simulates XGPSER enough to know at all times where it is on the page
␈↓ ↓H␈β∧9␈¬∂  ;It allows sorting each output thing according to Y0 so that XGPSER doesn't complain
␈↓ α_␈β∧W␈¬βWARNING␈α∞--␈α∞This␈α∞bit␈α∞can␈α∞not␈α∞be␈α∞turned␈α∞off␈α∞at␈α∞all␈α∞(I␈α∞haven't␈α∞implemented␈α∞it␈α∞because␈α∞it␈α
doesn't
␈↓ ↓H␈β∧u␈¬βseem␈α
like␈α
a␈α
good␈α
idea␈α
for␈α
several␈α
reasons)␈α
--␈α
Regarding␈α
turning␈α
it␈α
on,␈α
if␈α
you␈α
turn␈α
it␈α
on␈α
after␈αone␈αor
␈↓ ↓H␈β¬∪␈¬βmore␈αpages␈αof␈αtext␈αhave␈αbeen␈αoutput,␈αthe␈αbottom␈αmargin␈α
will␈α
probably␈α
get␈α
screwed␈α
up␈α
--␈α
If␈α
you␈α
turn␈α
it
␈↓ ↓H␈β¬1␈¬βon␈α
after␈α
text␈α
has␈α
been␈αoutput␈αon␈αthe␈αcurrent␈αpage,␈αthe␈αxspooler␈αwill␈αprobably␈αabort␈αdue␈αto␈αincorrect
␈↓ ↓H␈β¬O␈¬βY0␈αsequence␈α--␈αIn␈αconclusion,␈αyou␈αshould␈αturn␈αon␈αthe␈αsimulator␈αbefore␈αany␈αtext␈αis␈αoutput␈αat␈αall,␈αor␈αnot
␈↓ ↓H␈β¬m␈¬βat␈α
all.
␈↓ α_␈βε
␈¬βWARNING␈α
--␈α
You␈α
must␈α
do␈α
at␈α
least␈α
one␈¬␈α
1␈¬∂F␈¬β␈α
after␈α
turning␈αon␈αthe␈αsimulator␈αbefore␈αoutputting␈αany
␈↓ ↓H␈βε*␈¬βtext,␈α
or␈α
you␈α
will␈α
get␈α
screwed.
␈↓ ↓H␈βεH␈¬∂VERSGK←←000010␈↓ βH;Double-gap after . : etc. if double-space input
␈↓ ↓H␈βεf␈¬∂VER56P←←000020␈↓ βH;ENABLE $5 AND $6 INITIALIZATION WITH TLIM1 AND BLIM1 DATA --
␈↓ ↓H␈βπ∧␈¬∂  See BUG#2 -- Takes effect when a $M command is executed on a font not previously
␈↓ ↓H␈βπ"␈¬∂  loaded.
␈↓ ↓H␈βπ@␈¬∂VERREM←←000040␈↓ βH;ENABLE REM'S SYNTAX FOR MACROS WITH ARGS DEFINITIONS -- Takes
␈↓ ↓H␈βπ↑␈¬∂  effect when the macro is being defined.
␈↓ ↓H␈βπ|␈¬∂VEREVE←←000100␈↓ βH;ENABLE EVERYPAGE MACRO
␈↓ ↓H␈βλ_␈¬∂  ;If on, once on every new page of output it simulates ␈¬1␈¬∂!EVERYPAGE; occurring in
␈↓ ↓H␈βλ7␈¬∂  your input file (at the first occurrance of <CR><LF> or ␈¬1␈¬∂;...<CR><LF> while in
␈↓ ↓H␈βλW␈¬∂  pass-as-is mode, or a few other places -- If you want this to happen on the page
␈↓ ↓H␈βλs␈¬∂  where you turn on the feature, you will have to do ␈¬1␈¬∂!EVERYPAGE; yourself once there.
␈↓ ↓H␈β	∪␈¬∂  WARNING!! -- Because of the fact that this macro is called at an almost-random
␈↓ ↓H␈β	1␈¬∂  location with respect to your input file, it must be constructed so as to
␈↓ ↓H␈β	O␈¬∂  avoid clobbering anything (registers or input syntax, usually) that might
␈↓ ↓H␈β	m␈¬∂  confuse the main processing of the file.  Any registers used should be saved
␈↓ ↓H␈β
␈¬∂  and restored using push/pop commands.  Watch out for $ $N $; $, etc. which
␈↓ ↓H␈β
)␈¬∂  will cause strange and confusing destruction of your world if the terminating
␈↓ ↓H␈β
G␈¬∂  <CR><LF> or <FF> or whatever is missing from your everypage macro.
␈↓ ↓H␈β
e␈¬∂;000000 000200␈↓ βH;(RESERVED FOR FUTURE COLIST-KLUDGE)
␈↓ ↓H␈ββ␈¬∂VERRHT←←000400␈↓ βH;ENABLE MODIFIED WAY TO PARSE ARGS THAT HAVE NESTING CHARS IN THEM
␈↓ ↓H␈β!␈¬∂  (i.e., anything inside nesting inside nesting is quoted, etc., see
␈↓ ↓H␈β?␈¬∂   the earlier section "Detailed examples of argument evaluation")
␈↓ ↓H␈β]␈¬∂  Takes effect when a parameter is being parsed prior to being bound to dummy arg.
␈↓ ↓H␈β{␈¬∂VERREG←←001000␈↓ βH;$'<OCTAL>; OLD WAY -- 177 ALWAYS EVEN IF IT DEFEATS POX QUIETLY
␈↓ ↓H␈β→␈¬∂VERSMT←←002000␈↓ βH;$'<OCTAL>; NEW WAY -- 177 ONLY IF NEEDED
␈↓ ↓H␈β7␈¬∂VERIDC←←004000␈↓ βH;SPECIAL REQUEST BY RHT, NO ERROR IF ; OMITTED AFTER MACRO CALL
␈↓ ↓H␈βU␈¬∂VERPAG←←010000␈↓ βH;AUTOMATIC PAGE CHANGE W/OUT FIRST WARNING, TEXT AND $O OUTPUT OVL
␈↓ βH␈βs␈¬∂(If the input file is exhausted when page-overflow
␈↓ βH␈β
⊃␈¬∂ happens, POX changes pages even if this  switch is off,
␈↓ βH␈β
/␈¬∂ since it can't show input-context at that point.)
␈↓ ↓H␈β
M␈¬∂VERLCS←←040000␈↓ βH;CHANGE WAY TABS IN PASSIS ARE DONE TO 1/10 OF RMAR-LMAR * INPUT COL
␈↓ ↓H␈β
k␈¬∂  WARNING -- Only tabs in input file do the right thing.  A counter
␈↓ ↓H␈β∞	␈¬∂  keeps track of what column in the input file we are at, and
␈↓ ↓H␈β∞'␈¬∂  rounds up to multiple of 8 when a tab occurs in the input FILE
␈↓ ↓H␈β∞E␈¬∂  (not in a macro expansion patch).  Thus any text just after a tab
␈↓ ↓H␈β∞c␈¬∂  in the input file will appear on the output page in approximately
␈↓ ↓H␈β∂↓␈¬∂  the same column on the XGP.  Note that a tab in a macro will
␈↓ ↓H␈β∂∨␈¬∂  activate this mechanism, but it will go to a position corresponding
␈↓ ↓H␈β∂=␈¬∂  to the input FILE rather than what that file would have been with
␈↓ 	∪␈¬α 25␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 26␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬∂  the macros inserted in it.  Note that the three low order bits
␈↓ ↓H␈β↓f␈¬∂  of the column counter are ignored also.  A warning message
␈↓ ↓H␈βα∧␈¬∂  will be generated if a tab is encountered in a macro while not at
␈↓ ↓H␈βα"␈¬∂  a multiple of 8 columns, until such time as
␈↓ ↓H␈βα@␈¬∂  an implementation is found that satisfies everyone.
␈↓ ↓H␈βα↑␈¬∂VERESC←←100000␈↓ βH;CAUSES BRICK CHAR IN MACRO BODY TO BE SAME AS ⊗$⊗ FEATURE, i.e.
␈↓ ↓H␈βα|␈¬∂  the <BRICK> token rather than the character itself -- This bit is tested at the
␈↓ ↓H␈ββ~␈¬∂  time the macro body is being parsed and associated with the macro name
␈↓ ↓H␈ββ6␈¬∂  (at define-time during execution of the ␈¬1␈¬∂8 or ␈¬1␈¬∂∞ command).
␈↓ ↓H␈ββV␈¬βWARNING!!␈α(75␈αAUG␈α03)␈α--␈αThe␈αtoken␈αin␈αthe␈αmacro␈αbody␈αis␈αreplaced␈αby␈αthe␈αcurrent␈αbrick␈αcharacter␈αat
␈↓ ↓H␈ββt␈¬βthe␈α
time␈α
the␈α
token␈α
is␈α
rescanned␈α
as␈α
input,␈α
not␈α
earlier␈α
when␈α
the␈α
macro␈α
body␈α
is␈α
patched␈α
into␈α
the␈α
input
␈↓ ↓H␈β∧∩␈¬βstream,␈α
so␈α
if␈α
your␈α
brick␈α
character␈α
at␈α
macro-define␈α
time␈α
was␈α
\␈α
and␈αthe␈αmacro␈αbody␈αincludes␈α\|$...$|\␈αit
␈↓ ↓H␈β∧0␈¬βwill␈α
be␈α
compiled␈α
as␈α
<brick>|$...$|<brick>␈α
then␈α
if␈α
when␈α
you␈α
call␈αit␈α\␈αis␈αthe␈αbrick␈αcharacter,␈αthe␈α<brick>|$
␈↓ ↓H␈β∧N␈¬βwill␈αbe␈αconverted␈αto␈α\|$␈αand␈α$␈αwill␈αbe␈αyou␈αbrick␈αcharacter␈αfor␈α...,␈αthen␈α$|<brick>␈αwill␈α
be␈α
converted␈α
to␈α
$|$
␈↓ ↓H␈β∧l␈¬βinstead␈αof␈αthe␈α$|\␈αyou␈αprobably␈αintended,␈αand␈αyou␈αwill␈αtotally␈αlose␈α
just␈α
like␈α
this␈α
POX␈α
writeup␈α
did␈α
before
␈↓ ↓H␈β¬
␈¬βI␈α
located␈α
this␈α
subtle␈α
bug␈α
(in␈α
this␈α
writeup)␈α
and␈α
fixed␈α
it.␈α~If␈α
you␈α
want␈α
the␈α
effect␈α
desired␈α
(whatever␈αthe
␈↓ ↓H␈β¬(␈¬βbrick␈αchar␈αis,␈αchange␈αit␈αto␈α$,␈α
then␈α
back␈α
again)␈α
you␈α
can␈α
probably␈α
make␈α
it␈α
work␈α
by␈α
having␈α
your␈α
macro␈α
call
␈↓ ↓H␈β¬F␈¬βEVAL␈α∞with␈α∞a␈α∞quoted␈α∞string␈α∞containing␈α
the␈α
brick␈α
character,␈α
thereby␈α
forcing␈α
both␈α
<brick>␈α
tokens␈α
to␈α
be
␈↓ ↓H␈β¬d␈¬βreplaced␈α∩by␈α∩the␈α∩same␈α∩brick␈α∩character␈α∩at␈α∩argument-binding␈α∩(arg␈α∩to␈α∩EVAL)␈α∩time␈α⊃and␈α⊃used␈α⊃in␈α⊃both
␈↓ ↓H␈βεα␈¬βinstances.␈α∀Note␈α
that␈α
this␈α
subtle␈α
problem␈α
happens␈α
the␈α
same␈α
with␈α
the␈α
old␈α
⊗$⊗␈α
syntax␈α
in␈α
macro␈α
bodies.
␈↓ ↓H␈βε ␈¬∂VERXX1←←200000␈↓ βH;IMPLEMENTS CORRECT OUTPUT-OVERLAY AS OF 1975.JUL/AUG
␈↓ ↓H␈βε>␈¬∂VERVER←←400000␈↓ βH;ENABLES TYPEOUT OF SPECIAL FEATURES ON/OFF
␈↓ α(␈βεx␈¬Batch (left half of ␈¬εq␈¬) = 1
␈↓ ↓H␈βπ ␈¬∂VE1QES←←000001␈↓ βH;SUPPRESSES CRUFTY OLD ␈¬11␈¬∂ "FEATURE"
␈↓ ↓H␈βπ@␈¬∂VE1OPN←←000002␈↓ βH;OUTPUT PAGE NUMBERS TYPED
␈↓ ↓H␈βπ\␈¬∂VE1RWG←←000004␈↓ βH;␈¬β(This feature no longer supported; use ␈¬1␈¬∂H␈¬β command instead.)
␈↓ ↓H␈βπ|␈¬∂VE1TSP←←000010␈↓ βH;Erroneous tab in middle of justified line treated as space
␈↓ ↓H␈βλ~␈¬∂VE1LES←←000020␈↓ βH;Suppress side-effect of comma delimiting macro arguments
␈↓ ↓H␈βλ8␈¬∂VE1FAI←←000040␈↓ βH;Fail error mode, don't stop on errors
␈↓ ↓H␈βλV␈¬∂ (use altmode to get back to normal mode)
␈↓ ↓H␈βλt␈¬∂VE1EOF←←000100␈↓ βH;CHANGES $, COMMAND TO STOP AT IOPOP (SUB-EOF) AS WELL AS FORMFEED
␈↓ ↓H␈β	∩␈¬∂VE1WHT←←000400␈↓ βH;CAUSES QUIET SKIP OF WHITE SPACE IN MANY SPECIAL-SYNTAX PLACES
␈↓ ↓H␈β	0␈¬∂VE1DON←←001000␈↓ βH;SUPPRESSES WARNING MESSAGE ABOUT INCOMPATIBLE IMPROVEMENT IN
␈↓ βH␈β	N␈¬∂; RIGHT-KERN FOR OVERLAYS, AND $H-OF-NULL-OVERLAY ERROR MSG
␈↓ ββ␈β
λ␈¬βFor␈αexample,␈αthe␈αcommand␈¬␈α1␈¬∂⊂'446;␈¬β␈αwill␈αturn␈α
on␈α
the␈α
simulator␈α
and␈α
enable
␈↓ ββ␈β
(␈¬βthe␈αfull␈α
REM␈α
macro-with-argument␈α
syntax␈α
with␈α
ability␈α
to␈α
quote␈α
portions␈α
of
␈↓ ββ␈β
F␈¬βarguments␈α⊂and␈α⊂cause␈α⊂trace␈α⊂output␈α⊂to␈α⊂appear␈α⊂on␈α∂your␈α∂terminal␈α∂as␈α∂POX
␈↓ ββ␈β
c␈¬βruns.␈α≤The␈α∞command␈¬␈α∞1␈¬∂⊂'1000001;␈¬β␈α∞will␈α
turn␈α
on␈α
the␈α
bit␈α
that␈α
deletes␈α
the
␈↓ ββ␈βα␈¬11␈¬β␈α⊃command.␈α"At␈α⊃a␈α⊃later␈α⊃time␈¬␈α⊃1␈¬∂⊃'2;␈¬β␈α⊃will␈α⊂turn␈α⊂off␈α⊂the␈α⊂trace␈α⊂without
␈↓ ββ␈β"␈¬βaffecting␈α!the␈α!simulator␈α or␈α macro-with-arguments␈α or␈α any␈α other
␈↓ ββ␈β@␈¬βspecial-feature␈α
bits.
␈↓ ∧3␈β{␈¬REMARKS ON USING THE POX PROGRAM
␈↓ α_␈β≡␈¬βIf␈αyou␈αhave␈αthe␈αVERTRC␈αflag␈αenabled␈α(see␈αthe␈¬␈α1␈¬∂⊂␈¬β␈αcommand␈αet␈αal)␈αvarious␈αrandom␈αthings␈αwill␈αget
␈↓ ↓H␈β=␈¬βtyped␈αout␈αwhile␈αPOX␈αis␈αrunning,␈αincluding␈αtext␈αin␈αyour␈αinput␈αfile␈αappearing␈αafter␈¬␈α1␈¬∂;␈¬β␈αand␈¬␈α1␈¬∂,␈¬β␈αcommands.
␈↓ ↓H␈β]␈¬βFor␈α⊂the␈α⊂most␈α⊂part␈α⊂you␈α⊂may␈α⊂ignore␈α⊂them.␈α If␈α⊂you␈α∂really␈α∂want␈α∂to␈α∂know␈α∂about␈α∂them,␈α∂ask␈α∂REM␈α∂about
␈↓ ↓H␈β{␈¬βparticular␈αones,␈αor␈αlook␈α
in␈α
the␈α
source␈α
program␈α
for␈α
POX.␈α∀These␈α
trace␈α
outputs␈α
are␈α
all␈α
subject␈α
to␈α
purge␈α
at
␈↓ ↓H␈β
→␈¬βany␈α
time␈α
as␈α
POX␈α
develops.
␈↓ α_␈β
7␈¬βTo␈α∪enable␈α∪some␈α∪of␈α∪the␈α∩new␈α∩features␈α∩implemented␈α∩after␈α∩1974␈α∩Nov␈α∩which␈α∩conflict␈α∩with␈α∩old
␈↓ ↓H␈β
T␈¬βfeatures,␈α⊃special␈α⊃flags␈α⊃must␈α⊃be␈α⊃set␈α⊃earlier␈α⊃in␈α⊃your␈α⊃input␈α⊃file␈α⊂(see␈α⊂the␈¬␈α⊂1␈¬∂⊂␈¬β␈α⊂command␈α⊂et␈α⊂al)␈α⊂--␈α⊂The
␈↓ ↓H␈β
t␈¬βdefinition␈α
of␈α
register␈¬∂␈α
∀␈¬β␈α
as␈α
the␈α
accumulator,␈α
and␈α
the␈α
newly-implemented␈α
side-effects␈α
of␈α
q-register␈α"␈¬∂,␈¬β"
␈↓ ↓H␈β∞∩␈¬βare␈α∂automatically␈α∂in␈α∂effect␈α∂and␈α∂can␈α∂not␈α∞be␈α∞inhibited␈α∞except␈α∞by␈α∞using␈α∞an␈α∞old␈α∞version␈α∞of␈α∞POX␈α∞(before
␈↓ ↓H␈β∞0␈¬β74.DEC).
␈↓ ¬Q␈β∞k␈¬Backtrace package
␈↓ α_␈β∂∞␈¬βThere␈αare␈α5␈αkinds␈αof␈αerrors␈αthat␈αcan␈αoccur␈αwhile␈αPOX␈αis␈αcompiling␈αa␈αtext␈αfile:␈α⊗(1)␈αE40␈α=␈αbugs␈αin
␈↓ ↓H␈β∂,␈¬βthe␈αuser␈αfile␈αfrom␈αwhich␈αit␈αmight␈αbe␈αpossible␈αto␈αcontinue␈αif␈αthe␈αparser␈α
is␈α
correctly␈α
synchronized␈α
or␈α
if␈α
it
␈↓ 	∪␈¬α 26␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 27␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬βwill␈αre-synchronize␈αitself␈αsoon␈αenough␈αto␈αbe␈αable␈αto␈αdo␈αthe␈αrest␈αof␈αthe␈αfile␈αmostly␈αcorrectly.␈α⊗(2)␈αE40F
␈↓ ↓H␈β↓f␈¬β=␈α⊃"fatal"␈α⊃bugs␈α⊃in␈α⊃the␈α⊃user␈α⊃file␈α⊃from␈α⊃which␈α⊃continuation␈α⊃is␈α⊃not␈α⊃possible␈α⊂but␈α⊂context␈α⊂information␈α⊂is
␈↓ ↓H␈βα∧␈¬βavailable␈αand␈αmight␈αbe␈αhelpful␈αto␈αthe␈αuser.␈α⊗(3)␈αERRF␈α=␈αerrors␈αcaused␈αby␈αthe␈αinput␈α
file␈α
that␈α
have␈α
wiped
␈↓ ↓H␈βα"␈¬βout␈αall␈α
context␈α
information␈α
--␈α
This␈α
usually␈α
happens␈α
at␈α
the␈α
end␈α
of␈α
a␈α
file␈α
while␈α
inside␈α
the␈α
mode␈α
of␈α
building
␈↓ ↓H␈βα@␈¬βup␈αthe␈αbody␈αof␈αa␈αmacro␈αor␈αmacro-argument,␈αcaused␈αby␈αa␈αmissing␈αparenthesis␈αsomewhere.␈α∃(4)␈α
FATAL␈α
=
␈↓ ↓H␈βα↑␈¬βbugs␈αin␈αPOX␈αin␈αcode␈αthat␈αis␈αin␈αa␈αstate␈αof␈αdebugging␈αand␈αstill␈αhas␈αASCII␈αwarning␈αmessages␈αfor␈αdetected
␈↓ ↓H␈βα|␈¬βerrors.␈α≤(5)␈α∞INTERR␈α∞=␈α∞internal␈α∞errors␈α∞detected␈α∞in␈α∞POX␈α∞program,␈α∞in␈α
code␈α
that␈α
shouldn't␈α
have␈α
anything
␈↓ ↓H␈ββ~␈¬βwrong␈α
with␈α
it,␈α
probably␈α
core␈α
clobberage␈α
rather␈α
than␈α
POX␈α
bugs.
␈↓ α_␈ββ8␈¬βIn␈αE40␈αerrors␈αthe␈αerror␈αmessage␈αis␈αtyped␈αout,␈αthen␈αthe␈αcurrent␈αlevel␈αof␈αmacro␈αexpansion␈αor␈αfile
␈↓ ↓H␈ββV␈¬βinput␈αis␈αtyped␈αout␈αin␈αabout␈αthe␈αsame␈αway␈αas␈αthe␈αSAIL␈αcompiler␈αannounces␈αcompilation␈αerrors,␈αthen␈αthe
␈↓ ↓H␈ββt␈¬βuser␈α
has␈α
the␈α
following␈α
options:
␈↓ α_␈β∧⊃␈¬β→␈↓#↓ ␈↓#Hit␈¬∂␈α⊂C␈¬β␈α⊂to␈α⊂close␈α⊂the␈α⊂main␈α⊂output␈α⊂(.XGP)␈α⊂file,␈α⊂patch␈α⊂in␈α⊂the␈α⊂list␈α⊂of␈α∂fonts␈α∂used␈α∂so-far,␈α∂and␈α∂exit
␈↓ ↓H␈β∧0␈¬βimmediately␈α
as␈α
if␈α
the␈α
input␈α
file␈α
had␈α
ended␈α
with␈α
no␈α
error;
␈↓ α_␈β∧M␈¬β→␈↓#↓ ␈↓#Hit␈¬∂␈α⊃P␈¬β␈α⊃to␈α⊃proceed␈α⊃with␈α⊃the␈α⊃program␈α⊃--␈α⊃when␈α⊂proceeding␈α⊂from␈α⊂illegal␈α⊂brick␈α⊂command␈α⊂while
␈↓ ↓H␈β∧l␈¬βbinding␈αargument␈αto␈αmacro,␈αthe␈αtext␈αof␈αthe␈αillegal␈αcommand␈αis␈αpassed␈αunevaluated␈αto␈αthe␈αargument␈αjust
␈↓ ↓H␈β¬
␈¬βas␈α
if␈α
it␈α
had␈α
been␈α
quoted;
␈↓ α_␈β¬'␈¬β→␈↓#↓ ␈↓#Hit␈¬¬␈α∂<ctrl><meta>␈¬∂P␈¬β␈α∂to␈α∂clobber␈α∂the␈α∂error-call␈α∂to␈α∂a␈α∂NO-OP␈α∞and␈α∞proceed.␈α≤Thus␈α∞if␈α∞the␈α∞same␈α∞error
␈↓ ↓H␈β¬F␈¬βhappens␈α
no␈α
message␈α
will␈α
be␈α
generated␈α
and␈α
it␈α
will␈α
proceed␈α
as␈α
if␈α
you␈α
had␈α
typed␈¬∂␈α
P␈¬β␈α
each␈α
time;
␈↓ α_␈β¬c␈¬β→␈↓#↓ ␈↓#Hit␈¬∂␈α
R␈¬β␈α
to␈α
remember␈α
the␈α
current␈α
location␈α
in␈α
the␈α
source␈α
file␈α
and␈α
proceed;
␈↓ α_␈βε↓␈¬β→␈↓#↓ ␈↓#Hit␈¬¬␈α
<ctrl><meta>␈¬∂R␈¬β␈α
to␈α
remember,␈α
clobber,␈α
and␈α
proceed;
␈↓ α_␈βε∨␈¬β→␈↓#↓ ␈↓#Hit␈¬∂␈α
Q␈¬β␈α
to␈α
perform␈α
skip-return␈α
instead␈α
of␈α
direct␈α
return␈α
as␈α
in␈α
the␈¬∂␈α
P␈¬β␈α
command.␈α~In␈α
places␈α
where
␈↓ ↓H␈βε>␈¬βthis␈αis␈αimplemented␈αit␈αcauses␈αthe␈αspecial␈αmode␈α(such␈αas␈αjustify)␈αto␈αbe␈αleft␈αimmediately␈αbefore␈αresuming
␈↓ ↓H␈βε\␈¬βprocessing␈α
of␈α
input;
␈↓ α_␈βεy␈¬β→␈↓#↓ ␈↓#Hit␈¬¬␈α⊂<ctrl><meta>␈¬∂Q␈¬β␈α⊂to␈α⊂clobber␈α⊂the␈α⊂error␈α∂call␈α∂to␈α∂a␈α∂CAIA␈α∂(skip␈α∂always)␈α∂instruction,␈α∂then␈α∂perform
␈↓ ↓H␈βπ_␈¬βskip-return.␈α≤This␈α∞command␈α∞is␈α∞provided␈α∞only␈α∞for␈α∞experienced␈α∞users␈α∞who␈α∞are␈α∞willing␈α∞to␈α∞take␈α∞the␈α∞risk
␈↓ ↓H␈βπ6␈¬βinherent␈α
in␈α
this␈α
command;
␈↓ α_␈βπS␈¬β→␈↓#↓ ␈↓#Hit␈¬∂␈α∞T␈¬β␈α∞to␈α∞pop␈α∞up␈α∞one␈α∞macro␈α∞level␈α∞and␈α∞do␈α∞a␈α∞context␈α∞display␈α
there␈α
too␈α
[the␈α
pop-up␈α
is␈α
for␈α
the
␈↓ ↓H␈βπr␈¬βdisplayed␈αoutput␈αonly,␈αit␈αdoesn't␈α
change␈α
the␈α
point␈α
where␈α
the␈α
program␈α
would␈α
resume␈α
if␈α
P␈α
were␈α
hit␈α
later]
␈↓ ↓H␈βλ⊂␈¬β--␈αIf␈αyou␈αhave␈αpopped␈αup␈αto␈αan␈αactual␈αinput␈α
(DSK)␈α
file,␈α
or␈α
were␈α
there␈α
already,␈α
you␈α
can't␈α
pop␈α
up␈α
further
␈↓ ↓H␈βλ.␈¬βbecause␈α
implementating␈α
that␈α
capability␈α
in␈α
an␈α
obvious␈α
way␈α
WOULD␈α
clobber␈α
the␈α
context;
␈↓ α_␈βλK␈¬β→␈↓#↓ ␈↓#Hit␈¬∂␈αE␈¬β␈αto␈αreturn␈αto␈αdisplay␈αeditor␈αat␈αthis␈αlocation␈αin␈αthe␈αinput␈αfile.␈α⊗The␈αonly␈αway␈αthat␈αcurrently
␈↓ ↓H␈βλj␈¬βexists␈αfor␈αgetting␈αfrom␈αE␈αback␈αto␈αPOX␈αautomatically␈αwith␈αthe␈αcorrect␈αtop-level␈αfile,␈αis␈αto␈αhave␈αa␈αdo␈αfile
␈↓ ↓H␈β	λ␈¬βthat␈αsays:␈¬∂␈α⊗POX␈¬¬␈α<FILE>␈¬∂↔␈¬β␈αand␈αto␈αtype␈αto␈αthe␈αsystem␈¬∂␈αDO␈¬¬␈α<DO␈αFILE␈αNAME><CR><LF>␈¬β␈αthe␈αfirst␈αtime␈αyou␈α
run␈α
POX,
␈↓ ↓H␈β	&␈¬βthen␈α
afterward␈α
to␈α
use␈α
the␈α
<CTRL><META>␈¬∂X␈α
G␈¬¬<CR>␈¬β␈α
command␈α
in␈α
E;
␈↓ α_␈β	C␈¬β→␈↓#↓ ␈↓#Hit␈¬¬␈α∪<ctrl><meta>␈¬∂E␈¬β␈α∪to␈α∪return␈α∪to␈α∪display␈α∪editor␈α∪at␈α∪the␈α∩location␈α∩you␈α∩had␈α∩it␈α∩remember␈α∩earlier
␈↓ ↓H␈β	b␈¬β(Warning,␈αif␈αyou␈αhad␈αit␈αremember␈αmore␈αthan␈αone␈αearlier␈αlocation,␈αit␈αisn't␈αsupported␈αwhat␈αthis␈αcommand
␈↓ ↓H␈β
␈¬βwill␈α
do.);
␈↓ α_␈β
≥␈¬β→␈↓#↓ ␈↓#Hit␈¬∂␈α∂D␈¬β␈α∂to␈α∂go␈α∂into␈α∂debug␈α∂mode␈α∂(i.e.,␈α∂RAID).␈α≡Hit␈α∂<ctrl>P␈α∂to␈α∂return␈α∂from␈α∞RAID␈α∞to␈α∞the␈α∞backtrace
␈↓ ↓H␈β
<␈¬βpackage;
␈↓ α_␈β
Y␈¬β→␈↓#↓ ␈↓#Hit␈α<CALL>␈αto␈αdo␈αanything␈αelse,␈αlike␈α
to␈α
edit␈α
with␈α
SOS,␈α
or␈α
to␈α
give␈α
up␈α
entirely,␈α
or␈α
to␈α
"␈¬∂F␈α
DSK␈¬β"␈α
then
␈↓ ↓H␈β
x␈¬βsee␈α
what␈α
POX␈α
outputted␈α
before␈α
the␈α
error␈α
occurrred.
␈↓ α_␈β⊗␈¬βFrom␈α
E40F␈α
errors␈α
all␈α
the␈α
above␈α
are␈α
available␈α
except␈α
those␈α
which␈α
involve␈α
proceeding.
␈↓ α_␈β4␈¬βIf␈α
you␈α
want␈αto␈αexamine␈αyour␈αoutput␈αfile␈αaccording␈αto␈αhow␈αthe␈αXGP␈αservice␈αparses␈αit,␈¬∂␈αR␈αXGPTYP␈¬β.
␈↓ ↓H␈βR␈¬βFor␈αinvestigating␈αnew␈αbugs␈αin␈αa␈αlarge␈αfile,␈αa␈α
useful␈α
technique␈α
is␈α
to␈α
run␈α
XGPTYP␈α
on␈α
both␈α
the␈α
output␈α
from
␈↓ ↓H␈βp␈¬βa␈α∂backup␈α∂working␈α∂version␈α∂of␈α∂your␈α∂file␈α∂and␈α∂the␈α∂output␈α∂from␈α∂the␈α∞version␈α∞you␈α∞are␈α∞debugging,␈α∞then␈¬∂␈α∞R
␈↓ ↓H␈β∞␈¬∂SRCCOM␈¬β␈α
and␈¬∂␈α
TTY:←␈¬β<OLD␈α
XGPTYP␈α
LISTING>␈¬∂,␈¬β<NEW␈α
XGPTYP␈α
LISTING>.
␈↓ α_␈β,␈¬βIf␈α
your␈α
file␈α
looks␈α
ok␈α
but␈α
you␈α
get␈α
the␈α
message␈¬∂␈α
XGPSER␈αMISSED␈αIT.␈¬β␈α_then␈αtry␈αappending␈αto␈αthe
␈↓ ↓H␈βJ␈¬βend␈α
of␈α
the␈¬∂␈αXSPOOL␈¬β␈αcommand␈αthe␈αswitch␈¬∂␈α/NTNODE=31␈¬β,␈αthen␈αif␈αit␈αstill␈αdoesn't␈αwork␈αdiscuss␈αit␈αwith␈αRWG
␈↓ ↓H␈βh␈¬βor␈α
REG␈α
who␈α
are␈α
experts␈α
at␈α
this.
␈↓ β`␈β
#␈¬Known Bugs in POX (Referred-to earlier in writeup)
␈↓ α_␈β
F␈¬βBUG#2␈α∂--␈α∂Font␈α∂FORN25␈α∂and␈α∂other␈α∂fonts␈α∞with␈α∞funny␈α∞width␈α∞characters␈α∞cause␈α∞a␈α∞fatal␈α∞error,␈α∞and
␈↓ ↓H␈β
c␈¬βparameters␈α
5,6␈α
don't␈α
usually␈α
work␈α
correctly.␈α~[New␈α
bug␈α
since␈¬␈α
1␈¬∂5␈¬β␈α
and␈¬␈α
1␈¬∂6␈¬β␈αwere␈αimplemented,␈αthe␈αbad
␈↓ ↓H␈β∞α␈¬βcode␈α⊃has␈α⊃now␈α⊃been␈α⊂patched-around,␈α⊂so␈α⊂that␈α⊂normally␈α⊂no␈α⊂bug␈α⊂will␈α⊂occur␈α⊂but␈¬␈α⊂1␈¬∂5␈¬β␈α⊂and␈¬␈α⊂1␈¬∂6␈¬β␈α⊂will␈α⊂give
␈↓ ↓H␈β∞!␈¬βincorrect␈αdata,␈αbut␈αif␈αyou␈αuse␈αthe␈¬␈α1␈¬∂⊂'20;␈¬β␈αswitch␈αyou␈αtake␈αyour␈αchances␈α--␈αsomeday␈αthe␈αcode␈αmay␈αbe
␈↓ ↓H␈β∞A␈¬βreally␈α⊃fixed.]␈α"--␈α⊃1976.JAN.03␈α⊃I␈α⊃haven't␈α⊃changed␈α⊃anything␈α⊃but␈α⊃the␈α⊃fatal␈α⊃error␈α⊃no␈α⊃longer␈α⊂happens,
␈↓ ↓H␈β∞←␈¬βperhaps␈α
because␈α
FORN25␈α
has␈α
been␈α
changed␈α
recently.␈α∀The␈α
measurements␈α
are␈α
still␈α
wrong,␈α
however.
␈↓ 	∪␈¬α 27␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 28␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ∧>␈β↓H␈¬NOTES (Referred to earlier in writeup)
␈↓ ↓H␈β↓k␈¬β(NOTE␈α
1)␈α--␈αEverywhere,␈αexcept␈αat␈αthe␈αstart␈αof␈αthe␈αtop-level␈αfile,␈αPOX␈αreads␈αcharacters␈αin␈αthe␈αnormal
␈↓ ↓H␈βα	␈¬βsequence,␈α
and␈α
expects␈α
all␈α
syntax␈α
to␈α
be␈α
left-to-right␈αdecodeable.␈α_This␈αis␈αwhy,␈αfor␈αexample,␈αthe␈αstring
␈↓ ↓H␈βα&␈¬11␈¬∂!FOO;␈¬β,␈α
if␈α
seen␈α
in␈α
top-level␈αleft␈αcontext,␈αis␈αparsed␈αas␈α[quote␈αthe␈αescape␈αcharacter,␈αthen␈αoutput␈αthe
␈↓ ↓H␈βαF␈¬βstring␈α
"␈¬∂!FOO␈¬β"],␈α
rather␈α
than␈α
as␈α
[expand␈α
the␈α
macro␈¬∂␈α
FOO␈¬β␈α
then␈α
execute␈α
the␈α
command␈α
that␈α
results␈α
from␈αa
␈↓ ↓H␈βαd␈¬βbrick␈α
character␈α
in␈α
front␈α
of␈α
it].
␈↓ α_␈ββα␈¬βHowever,␈α
at␈α
the␈α
start␈α
of␈α
the␈α
first␈α
top-level␈α
input␈α
file␈α
a␈α
special␈αinitialization␈αparser␈αis␈αemployed
␈↓ ↓H␈ββ ␈¬βthat␈αpre-reads␈αthe␈αfirst␈αtwo␈αcharacters␈αthen␈αdecides␈αwhat␈αto␈αdo␈αregarding␈αsyntax.␈α⊗The␈αfollowing␈αtable
␈↓ ↓H␈ββ>␈¬βshows␈αthe␈αfirst␈αcharacters␈αand␈αwhat␈αhappens␈α(here␈α"∀"␈αmeans␈αany␈αcharacter␈αnot␈αmentioned␈αpreviously
␈↓ ↓H␈ββ\␈¬βin␈α∀the␈α∀same␈α∀context,␈α∀"∀∀"␈α∀means␈α∀the␈α∀two␈α∀copies␈α∀of␈α∀some␈α∪character,␈α∪"∀∃"␈α∪means␈α∪two␈α∪different
␈↓ ↓H␈ββz␈¬βcharacters):
␈↓ α_␈β∧_␈¬∂C␈¬β␈α
--␈α
assumes␈α
this␈α
is␈α
a␈α
TV/E␈αdirectory␈α--␈αskips␈αeverything␈αuntil␈αASCII␈α'014␈α(Form␈αFeed)␈αis␈αseen,
␈↓ ↓H␈β∧6␈¬βthen␈α
prereads␈α
again␈α
using␈α
only␈α
the␈α
options␈α
below␈α
this␈α
one.
␈↓ α_␈β∧T␈¬∂∀|␈¬β␈α--␈αassumes␈αthis␈αis␈αa␈α"change␈αthe␈αescape␈αcharacter"␈αcommand␈α--␈αjumps␈αinto␈αthe␈αmiddle␈αof␈αthe
␈↓ ↓H␈β∧q␈¬1␈¬∂|␈¬¬<CH>␈¬β␈α
code␈α
--␈α
in␈α
my␈α
opinion,␈α
this␈α
is␈α
the␈α
preferred␈α
way␈α
to␈α
begin␈α
a␈α
POX␈α
file␈αand␈αall␈αnew␈αfiles␈αshould
␈↓ ↓H␈β¬⊃␈¬βbegin␈α∂this␈α∂way␈α∂--␈α∂for␈α∞example,␈α∞your␈α∞file␈α∞might␈α∞begin␈α∞with␈¬∂␈α∞\|\\⊂'4;\M0FIX25;\M1BDR30;\;␈¬β␈α∞which
␈↓ ↓H␈β¬.␈¬βwould␈α
define␈¬∂␈α
\␈¬β␈α
as␈α
the␈¬␈α
1␈¬β␈α
character,␈α
change␈α
it␈α
to␈¬∂␈α
\␈¬β␈α
(i.e.,␈α
no␈α
change),␈α
turn␈α
on␈αthe␈αsimulator,␈αdefine␈αtwo
␈↓ ↓H␈β¬N␈¬βfonts,␈αand␈αsuppress␈αthe␈¬¬␈α<CR><LF>␈¬β␈αat␈αthe␈αend␈αof␈αthe␈αline␈α--␈αNote␈αthat␈αbecause␈αmost␈αusers␈αof␈αPOX␈αprefer
␈↓ ↓H␈β¬l␈¬βto␈α⊃use␈α⊂"␈¬∂\␈¬β"␈α⊂as␈α⊂their␈α⊂brick␈α⊂character,␈α⊂if␈α⊂you␈α⊂plan␈α⊂to␈α⊂use␈α⊂some␈α⊂character␈α⊂other␈α⊂than␈α⊂\␈α⊂as␈α⊂the␈α⊂brick
␈↓ ↓H␈βε
␈¬βcharacter␈αin␈αyour␈αfile,␈αand␈αyou␈αwant␈αyour␈αfile␈αto␈α
be␈α
callable␈α
(with␈α
minimum␈α
hassle)␈α
as␈α
a␈α
required␈α
source
␈↓ ↓H␈βε'␈¬βfile␈α
from␈α
some␈α
other␈α
file,␈α
you␈α
should␈α
probably␈α
begin␈αyour␈αfile␈αwith␈¬∂␈α\|␈¬1␈¬β␈α(where␈¬␈α1␈¬β␈αdenotes␈αyour␈αlocal
␈↓ ↓H␈βεF␈¬βbrick␈αcharacter)␈αand␈αput␈¬␈α1␈¬∂|\␈¬β␈αat␈αthe␈αvery␈αend␈αof␈αthe␈αfile.␈α⊗--␈αNote␈αthat␈αthis␈αdoes␈αnot␈αapply␈αto␈αlibraries
␈↓ ↓H␈βεe␈¬βof␈α∂macros,␈α∂in␈α∂which␈α∂the␈¬␈α∂1␈¬∂|␈¬β␈α∞command␈α∞is␈α∞currently␈α∞ignored,␈α∞and␈α∞you␈α∞should␈α∞avoid␈α∞changing␈α∞the␈α∞brick
␈↓ ↓H␈βπ¬␈¬βcharacter␈α
to␈α
anything␈α
other␈α
than␈α
"\".
␈↓ α_␈βπ#␈¬∂∀∀␈¬β␈α
--␈α
assume␈α
this␈α
is␈αa␈αbare␈α(out-of-syntax)␈αoccurrence␈αof␈αthe␈αescape␈αcharacter␈αfor␈αpurpose␈αof
␈↓ ↓H␈βπA␈¬βdefining␈α
it␈α
the␈α
old␈α
way␈α
(1973␈α
MAR-APR),␈α
followed␈α
by␈α
the␈α
beginning␈α
of␈α
a␈α
POX␈αcommand␈α--␈αjumps␈αinto
␈↓ ↓H␈βπ↑␈¬βthe␈α
middle␈α
of␈α
the␈α
escape␈α
code␈α
at␈α
the␈α
point␈α
just␈α
after␈α
the␈¬␈α
1␈¬β␈α
has␈α
been␈α
recognized.
␈↓ α_␈βπ⎇␈¬∂∀.␈¬β␈α⊂--␈α⊂assume␈α⊂this␈α⊂is␈α⊂an␈α⊂old-style␈¬␈α⊂1␈¬∂;␈¬β␈α⊂command␈α⊂(don't␈α∂rely␈α∂on␈α∂this,␈α∂it␈α∂is␈α∂incorrect)␈α∂--␈α∂ignore
␈↓ ↓H␈βλ≥␈¬βthrough␈α
next␈¬¬␈α
<CR><LF>␈¬β␈α
then␈α
jump␈α
into␈α
beginning␈α
of␈α
PASS-AS-IS␈α
loop.
␈↓ α_␈βλ;␈¬∂∀;␈¬β␈α
--␈α
assume␈α
this␈α
is␈α
a␈α
skip-to-crlf␈α
command␈α
--␈α
does␈α
it␈α
(see␈α
above).
␈↓ α_␈βλY␈¬∂∀∃␈¬β␈α--␈αassumes␈αthe␈αfirst␈αis␈αthe␈αescape␈αcharacter␈αand␈αthat␈αthe␈αuser␈αis␈αconfused␈αabout␈αwhat␈αto␈αdo
␈↓ ↓H␈βλw␈¬βnext␈α
--␈α
jumps␈α
into␈α
the␈α
PASS-AS-IS␈αloop␈αjust␈αafter␈αa␈αcharacter␈αhas␈αbeen␈αread,␈αto␈αbe␈αable␈αto␈αact␈αupon
␈↓ ↓H␈β	∃␈¬βthe␈α
∃␈α
character␈α
--␈α
because␈α
∃␈α
is␈α
not␈αthe␈αbrick␈αcharacter,␈αan␈αerror␈αwill␈αbe␈αgenerated␈αbecause␈αPOX␈αwill
␈↓ ↓H␈β	3␈¬βattempt␈α
to␈α
output␈α
the␈α
∃␈α
character␈α
but␈α
no␈α
font␈α
has␈α
yet␈α
been␈α
defined.
␈↓ ↓H␈β	n␈¬β(NOTE␈α
2)␈α
--␈α
THIS␈α
NOTE␈α
PURGED␈α
--␈α
SEE␈α
COMMANDS␈¬␈α
1␈¬∂`␈¬␈α
1␈¬∂⊂␈¬␈α
1␈¬∂⊃
␈↓ ↓H␈β
,␈¬β(NOTE␈α3)␈α--␈αOf␈αcourse,␈αsince␈αthe␈αexpansion␈αof␈αa␈αmacro␈αgenerates␈αa␈αnew␈αstring␈αof␈αtext␈αas␈αif␈α
it␈α
had␈α
been
␈↓ ↓H␈β
J␈¬βin␈αthe␈αinput␈αfile␈αoriginally,␈αsyntax␈αcan␈αbe␈αaltered␈αif␈αthe␈αbody␈αof␈αa␈αmacro␈αbegins␈αbut␈αdoes␈αnot␈αcomplete
␈↓ ↓H␈β
g␈¬βsome␈α
escape␈αsequence.␈α_Thus␈αthe␈αdefinition␈¬␈α1␈¬∂∞FOO[␈¬1␈¬∂oBIGMESS{4]␈¬β␈αwill␈αset␈αit␈αup␈αso␈αthat␈¬␈α1␈¬∂!FOO;␈¬β␈αwill
␈↓ ↓H␈βπ␈¬βbegin␈α∂the␈α∂definition␈α∂of␈α∂an␈α∂atomic␈α∂text␈α∂overlay␈α∂but␈α∂not␈α∂finish␈α∂it,␈α∂until␈α∂some␈α∂time␈α∂later␈α∂in␈α∞the␈α∞file␈α∞an
␈↓ ↓H␈β%␈¬βunmatched␈α
"␈¬∂}␈¬β"␈α
occurs.␈α∀This␈α
can␈α
be␈α
confusing,␈α
so␈α
watch␈α
your␈α
macros␈α
carefully.
␈↓ ↓H␈βa␈¬β(NOTE␈α4)␈α--␈αIn␈αnormal␈αmode,␈αletting␈αthe␈αsystem␈αdo␈¬¬␈α<LF>␈¬β␈αitself␈αor␈αsimulating␈αwhat␈αit␈αdoes,␈αsubscripts␈αetc.
␈↓ ↓H␈β␈␈¬βcause␈α∞irregular␈α∞spacing␈α∞of␈α∞lines␈α∞because␈α∞each␈α∞line␈α
takes␈α
up␈α
just␈α
as␈α
much␈α
space␈α
as␈α
it␈α
needs␈α
to␈α
avoid
␈↓ ↓H␈β≥␈¬βoverlap.␈α≡If␈α∂the␈α∂system␈α∂is␈α∂doing␈¬¬␈α∂<LF>␈¬β's␈α∂all␈α∂by␈α∂itself␈α∞(the␈α∞only␈α∞mode␈α∞currently␈α∞implemented),␈α∞the␈α∞POX
␈↓ ↓H␈β;␈¬βprogram␈α
hasn't␈α
the␈αvaguest␈αidea␈αwhere␈αon␈αthe␈αpage␈αthe␈αcurrent␈αline␈αof␈αtext␈αwill␈αbe␈αlocated␈αwhen␈αthe
␈↓ ↓H␈βY␈¬βsystem␈αgets␈αaround␈αto␈αputting␈αthe␈αoutput␈αonto␈αthe␈α
XGP.␈α∀However,␈α
if␈α
POX␈α
is␈α
simulating␈α
what␈α
the␈α
system
␈↓ ↓H␈βw␈¬βwould␈α∞do,␈α∞then␈α∞POX␈α
is␈α
using␈α
register␈α
"␈¬∂;␈¬β"␈α
and␈α
a␈α
couple␈α
of␈α
internal␈α
locations␈α
to␈α
keep␈α
track␈α
of␈α
the␈α
last
␈↓ ↓H␈β
∃␈¬βscan-line␈α
used,␈α
etc.
␈↓ α_␈β
3␈¬βIn␈α
pretty-spacing␈α
mode,␈α
the␈α
baselines␈α
of␈α
the␈αtext␈αlines␈αare␈αcaused␈αto␈αbe␈αevenly-spaced␈αeven␈αif
␈↓ ↓H␈β
Q␈¬βoverlap␈α
occurs␈α
or␈α
font␈α
size␈α
varies.␈α~This␈α
is␈α
done␈α
by␈α
computing␈α
where␈α
the␈α
top␈α
scan␈α
line␈αshould␈αbe␈α(Y
␈↓ ↓H␈β
o␈¬βposition␈αof␈αbaseline␈αdesired,␈αminus␈αY␈αoffset␈αof␈αworst-case␈αsuperscript)␈αand␈αtelling␈α
the␈α
system␈α
to␈α
do␈α
the
␈↓ ↓H␈β∞
␈¬βline␈αthere␈α(BLETCH!␈αBLETCH!).␈α∀This␈α
mode␈α
is␈α
obtained␈α
by␈α
setting␈α
the␈α
ε␈α
parameter␈α
to␈α
correct␈α
line␈α
spacing,
␈↓ ↓H␈β∞+␈¬βand␈α∀setting␈α∀the␈α∪λ␈α∪parameter␈α∪sufficiently␈α∪negative␈α∪to␈α∪allow␈α∪all␈α∪overlap␈α∪that␈α∪is␈α∪expected␈α∪without
␈↓ ↓H␈β∞I␈¬βspreading␈α
lines␈α
further␈α
apart.
␈↓ ↓H␈β∂∧␈¬β(NOTE␈α∞5)␈α∞--␈α∞If␈α∞the␈α∞font␈α∞file␈α∞is␈α∞already␈α∞compiled,␈α∞the␈¬␈α∞1␈¬∂M␈¬β␈α∞command␈α∞merely␈α∞maps␈α∞from␈α∞the␈α∞logical␈α∞font
␈↓ ↓H␈β∂$␈¬βnumber␈α
you␈α
selected␈α
to␈α
the␈α
already-compiled␈α
system␈α
font␈α
number.␈α~If␈α
the␈α
font␈α
you␈αrequested␈αis␈αnew
␈↓ 	∪␈¬α 28␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 29␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬βbut␈αthe␈αlogical␈αfont␈αnumber␈αis␈αalready␈αin␈αuse,␈αit␈αfinds␈αa␈αslot,␈αloads␈αthe␈αfont,␈αand␈αmaps␈αthe␈αfont␈αnumber.
␈↓ ↓H␈β↓f␈¬βThus␈α∂you␈α∂can␈α∂re-use␈α∂logical␈α∂font␈α∂numbers␈α∂for␈α∂multiple␈α∂fonts␈α∂(e.g.,␈α∂if␈α∞you␈α∞have␈α∞a␈α∞macro␈α∞that␈α∞uses␈α∞a
␈↓ ↓H␈βα∧␈¬βspecific␈α∞logical␈α∞font␈α∞number,␈α∞you␈α∞can␈α∞redefine␈α∞what␈α∞font␈α∞that␈α
number␈α
refers␈α
to␈α
between␈α
calls␈α
to␈α
the
␈↓ ↓H␈βα"␈¬βmacro).␈α≤There␈α∞are␈α∞only␈α∞16␈α∞(decimal)␈α∞logical␈α∞font␈α∞numbers,␈α∞and␈α∞thus␈α∞you␈α∞can␈α∞have␈α∞at␈α∞most␈α∞16␈α∞fonts
␈↓ ↓H␈βα@␈¬βdefined␈α
at␈α
any␈α
one␈α
point␈α
in␈α
the␈α
document,␈α
but␈α
by␈α
re-using␈αfont␈αnumbers␈αyou␈αcan␈αhave␈αmore␈αthan␈α16
␈↓ ↓H␈βα↑␈¬βfonts␈α
in␈α
the␈α
course␈α
of␈α
the␈α
entire␈α
document.␈α∀The␈α
current␈α
upper␈α
limit␈α
is␈α
32␈α
fonts.
␈↓ ε(␈ββ→␈¬TRIVIA
␈↓ ↓H␈ββ<␈¬βPASACT␈α--␈αFor␈αRAID␈αexperts,␈αnote␈αthat␈αat␈αPASACT+6␈αis␈αa␈αCAI␈α(NO-OP)␈αthat␈αis␈αexecuted␈αonly␈αwhen␈αPOX
␈↓ ↓H␈ββZ␈¬βtries␈α∂to␈α∂output␈α∂a␈α∂semicolon␈α∂at␈α∂passis-level.␈α≡Patching␈α∂it␈α∂to␈α∂a␈α∞HALT␈α∞or␈α∞setting␈α∞a␈α∞breakpoint␈α∞there␈α∞is
␈↓ ↓H␈ββx␈¬βuseful␈αfor␈α
debugging␈α
a␈α
mysterous␈α
extra␈α
semicolon␈α
that␈α
you've␈α
created.␈α∀If␈α
that␈α
doesn't␈α
find␈α
the␈α
problem,
␈↓ ↓H␈β∧⊗␈¬βtry␈α
patching␈α
PUTCHR+1␈α
too.
␈↓ α_␈β∧R␈¬βAs␈α
long␈α
as␈α
there␈α
is␈α
room␈α
in␈α
your␈αmind,␈αI␈αmight␈αas␈αwell␈αmention␈αsome␈αmajor␈αdeficiencies␈αof␈αPOX.
␈↓ ↓H␈β∧p␈¬βThere␈αis␈αno␈αway␈αto␈αdo␈αautomatic␈αfootnotes␈αor␈αindexes␈αor␈αcross-references.␈α_Syntax␈αis␈αmostly␈αstrange.
␈↓ ↓H␈β¬∞␈¬βPOX␈α∞doesn't␈α∞have␈α∞the␈α∞primitives␈α∞for␈α∞measuring␈α∞lengths␈α∞of␈α∞text␈α∞strings␈α
(macro␈α
bodies),␈α
nor␈α
for␈α
taking
␈↓ ↓H␈β¬,␈¬βsubstrings.␈α∀Also,␈α
without␈α
text-responses,␈α
ligatures␈α
can't␈α
be␈α
done␈α
conveniently.
␈↓ α_␈β¬h␈¬βONE␈αFINAL␈αTOUCH␈αTO␈αTHIS␈αWRITEUP␈α--␈αThe␈αspirograph␈αnear␈αthe␈αbottom␈αof␈αthis␈α
page␈α
(or␈α
the␈α
next
␈↓ ↓H␈βεε␈¬βif␈αthere␈αwasn't␈αroom␈αhere)␈αis␈αa␈αsimple␈αexample␈αof␈αhow␈αto␈αuse␈αrecursive␈α
macros␈α
to␈α
make␈α
program␈α
loops.
␈↓ ↓H␈βε#␈¬βIt␈α
also␈α
shows␈α
you␈α
the␈α
overshoot␈α
that␈α
happens␈α
with␈α
almost-horizontal␈α
vectors␈α
of␈α
the␈¬␈α
1␈¬∂v␈¬β␈α
type.
␈↓ ↓H␈βεa␈¬∂_; DRAW SPIROGRAPH STARTING AT (X,Y)/D (x,y)/d offset by (8,9)
␈↓ ↓H␈βε␈␈¬∂_∞SPIRO⊂_←X_→a_←Y_→b_←x_/d_+y_→y_+Y_→Y_←y_/d_¬x_→x_+X_→X_; wheel #1 perturbs #0
␈↓ ↓H␈βπ≥␈¬∂_←X_/D_+Y_→Y_←Y_/D_¬X_→X_; wheel #0
␈↓ ↓H␈βπ;␈¬∂_←X_+8_→A_←a_+8_→a_←Y_+9_→B_←b_+9_→b_vabAB=2;⊃_; and offset for XGP
␈↓ ↓H␈βπY␈¬∂_;
␈↓ ↓H␈βπw␈¬∂_∞SPIROS⊂_!SPIRO;_←I_-=1;_→I_?SPIROS;⊃_;
␈↓ ↓H␈βλ∃␈¬∂_;
␈↓ ↓H␈βλ3␈¬∂_←=800;_→8_←=1750;_→9_;
␈↓ ↓H␈βλQ␈¬∂_←=-44;_→X_←=26;_→Y_←=2;_→D_;
␈↓ ↓H␈βλo␈¬∂_←=-29;_→x_←=69;_→y_←=1;_→d_;
␈↓ ↓H␈β	
␈¬∂_←=200;_→I_!SPIROS;_;
␈∧↑π,␈gp ␈∧↑π,β?wα␈∧←π≡␈l('
␈∧←ε␈␈qd6π␈∧←ε␈∧e`β␈∧←π≡βipα␈∧dε←␈t␈E¬␈∧dε←εεPβ␈∧hπ8␈`V_∂␈∧hπ8β	⎇α␈∧kπF␈Q@⊂↔␈∧kπFα`↓∧α␈∧pεAπ@A∧␈∧pεA␈vuQ∧␈∧wπO␈&λ-␈∧wπOα8↓λα␈∧{ε␈{m↓¬α␈∧}¬k␈|*↓∃α␈∧␈ε+α↓0␈∧␈ε+␈{-uβ␈∧␈ε≠␈{S⎇α␈∧␈π[α∩↓∞α␈∧¬|␈|∂↓α␈∧∧ε$	*3¬␈∧∧ε$␈x#Z∧␈∧ε¬↑␈|F↓~α␈∧πε7pUε8␈∧πε7␈{∀mβ␈∧εD6U≠␈∧εD␈zmeβ␈∧
π`↓p↓⊃α␈∧∃¬?␈|⎇↓%α␈∧_πh↓N↓∃α␈∧≡ε>'ε␈∧≡ε␈y&`β␈∧ εX≠⊗
␈∧ εX␈z6Vβ␈∧)¬!␈⎇0↓/α␈∧1π;␈␈N↓∧α␈∧4πX␈␈7↓∩α␈∧6πm↓∃↓↔α␈∧7π≠␈␈]tα␈∧:εd∪≤	␈∧:¬w∞~≥π␈∧:εd␈z≤Jβ␈∧:¬w␈zλcβ␈∧?πr␈␈⊗↓∨α␈∧A¬	␈⎇]↓5α␈∧Eε|␈␈]dα␈∧Oλ	␈}t↓+α␈∧Uλ∀␈}i↓0α␈∧Vεi∂∨π␈∧Vεi␈z$Aβ␈∧Vπig↓∃α␈∧Wε↑␈␈PUα␈∧Y¬j⊂E⊗λ␈∧Y¬j␈zTbβ␈∧↑∧v␈}	↓8α␈∧eλ_␈}Q↓2α␈∧oεE␈␈≡Iα␈∧oλ!␈}?↓7α␈∧q¬B␈␈Neα␈∧t¬3␈␈Vlα␈∧t¬#␈␈Ytα␈∧uπ↑<↓⊂α␈∧vεg
L≡π␈∧vεg␈zY:β␈∧v¬`␈␈PUα␈∧y¬b⊃∞∩λ␈∧y¬b␈{∞↑β␈∧|¬∪␈␈lzα␈∧}∧k␈}2↓5α␈∧␈λ"␈})↓7α␈∧
¬α␈␈u↓↓α␈∧
∧¬y␈␈yEα␈∧
ε/␈}C>α␈∧
∧t↓¬α␈∧

λ'␈}↔↓:α␈∧
∪∧b→↓α␈∧
∀πM⊗↓πα␈∧
∃ε↑∞≡→π␈∧
∃ε↑␈{>6β␈∧
↔εU6α␈∧
_¬ck∪ε␈∧
_¬c␈{-Vβ␈∧
≥∧d␈}\↓1α␈∧
≡λ$␈⎇}↓8α␈∧
 ∧Y.↓∞α␈∧
)εu␈z⊗0β␈∧
+ε ␈⎇;7α␈∧
+π∪␈z}?β␈∧
,εV␈x⊂!∧␈∧
-∧FE↓∀α␈∧
-λ$␈⎇j↓8α␈∧
.π7␈␈x|α␈∧
0ε~αε)α␈∧
4εP⊃∞∩λ␈∧
4¬lπi↔∧␈∧
4εP␈|L6α␈∧
4¬l␈{-Jβ␈∧
5π.␈{"Lβ␈∧
8ε7␈q↔⊃π␈∧
:∧BZ↓∪α␈∧
;∧g␈␈↓(α␈∧
>¬v¬6≤β␈∧
>¬v␈{⊗Cβ␈∧
FπC␈{≤Wβ␈∧
Fπ≥␈␈`oα␈∧
Iε_␈α@␈∧
Kε!∧B∨β␈∧
Kε→␈|∃3α␈∧
L¬|βo∨α␈∧
L¬|␈{	<β␈∧
Mλ→␈⎇:↓3α␈∧
Oε:'6π∪␈∧
Oε:␈⎇f:α␈∧
Qε
αC&α␈∧
Qε
␈zE4β␈∧
V¬8↔␈∧
Vε␈␈␈V`α␈∧
W∧o␈␈"↓≥α␈∧
X∧.↓↓∃α␈∧
Zε≤␈{Z5α␈∧
\ε∀↓>+α␈∧
\ε∀␈z,β␈∧
]ε#␈xo%∧␈∧
]ε#z2α␈∧
↑πQ␈zs↑β␈∧
←ε`␈TVε∃␈∧
←ε`␈␈aQα␈∧
`¬*∩@⊂	␈∧
aε@␈t/⊗ε␈∧
aε@∂Aα␈∧
eε2␈w∪≤∧␈∧
eε2#:α␈∧
eε∨␈}VBα␈∧
h¬~∞↔⊗π␈∧
jε"λY↔∧␈∧
kε~␈{4β␈∧
kλπ␈⎇↓*α␈∧
n∧␈␈␈D↓∂α␈∧
v°
L→π␈∧
v∧"↓A↓∀α␈∧
wε"␈ze8β␈∧
wε␈␈*Mα␈∧
zπZ␈z:bβ␈∧
}¬⊗␈␈\↓α␈∧∞↓∧␈≡ε␈∧∞↓¬t␈␈MPα␈∧∞↓¬%␈␈↑xα␈∧∞α¬a␈␈XYα␈∧∞¬π`␈z,eβ␈∧∞¬¬C␈␈chα␈∧∞¬πo␈|X↓≡α␈∧∞πε$␈z 9β␈∧∞λ¬R␈␈k←α␈∧∞λ¬2␈␈noα␈∧∞	ε~
∀ε␈∧∞∂ε/␈z*>β␈∧∞⊃∧w
λ≡ε␈∧∞⊗∧≥αβ↓∞α␈∧∞↔π[␈ytcβ␈∧∞≠πS␈| ↓⊂α␈∧∞∨∧i]!ε␈∧∞∨ε6␈zλBβ␈∧∞"εB␈z!Gβ␈∧∞&π\␈yOcβ␈∧∞'ε	∂≡∃π␈∧∞*π5␈{i↓↓α␈∧∞.∧f∞J∨π␈∧∞0ε[␈z=Tβ␈∧∞3∧"αK↓¬α␈∧∞5π⊗␈{&qβ␈∧∞6πU␈y⊂`β␈∧∞6εw␈znbβ␈∧∞A∧Z∂  π␈∧∞D¬s∂j_λ␈∧∞GπR␈xX↑∧␈∧∞M∧\∩$≤	␈∧∞N∧+β'yα␈∧∞Q¬l⊂∀→λ␈∧∞VπG␈xεY∧␈∧∞[¬Z
V∨π␈∧∞c∧=∧∞kα␈∧∞eπ@␈w2U∧␈∧∞g¬N
⊗"ε␈∧∞m∧W→¬↔␈∧∞m¬=≤)¬␈∧∞t∧R¬⊗\β␈∧∞w¬.
7.¬␈∧∞y¬≥λ{6∧␈∧∞⎇∧nε<Lβ␈∧∞}¬
λ"<∧␈∧∂π'␈uLI¬␈∧∂
∧Z-6∞⊗␈∧∂∃π␈rm;ε␈∧∂#εl␈nε+	␈∧∂$∧eαXα↓,␈∧∂+ε.␈H
≤␈∧∂+εL␈e≤
␈↓ 	∪␈¬α 29␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 30␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ βs␈β↓H␈¬APPENDIX -- SUMMARY OF ALL POX COMMANDS
␈↓ ↓t␈β↓z␈¬IN THE APPROXIMATE CHRONOLOGICAL ORDER IN WHICH THEY WERE IMPLEMENTED
␈↓ ↓H␈βα≥␈¬∂page#
␈↓ ↓H␈βα;␈¬∂ ↓␈↓ αH[Original commands by R.E.Maas 1973]
␈↓ αH␈βαY␈¬∂;0␈↓ ∧HALL OTHERS, ILLEGAL
␈↓ ↓H␈βαw␈¬∂ 5␈↓ αH;1  |␈↓ ∧HSET NEW ESCAPE
␈↓ ↓H␈ββ∃␈¬∂ 3␈↓ αH;2  M␈↓ ∧HMAKE A NEW FONT
␈↓ ↓H␈ββ3␈¬∂ 4␈↓ αH;3  ;␈↓ ∧HIGNORE THRU LF ETC.
␈↓ ↓H␈ββQ␈¬∂ 4␈↓ αH;4  ,␈↓ ∧HIGNORE THRU FF
␈↓ ↓H␈ββo␈¬∂ 3␈↓ αH;5  F␈↓ ∧HFONT SELECT
␈↓ ↓H␈β∧
␈¬∂ 3␈↓ αH;6  f␈↓ ∧HFONT SELECT FOR ONE CHARACTER
␈↓ ↓H␈β∧+␈¬∂12␈↓ αH;7  S␈↓ ∧HSAMPLE
␈↓ ↓H␈β∧I␈¬∂ 4␈↓ αH;10 J␈↓ ∧HJUSTIFY
␈↓ ↓H␈β∧g␈¬∂ 9␈↓ αH;11 j␈↓ ∧HJUSTIFY
␈↓ ↓H␈⬬␈¬∂ 4␈↓ αH;12 C␈↓ ∧HCENTER
␈↓ ↓H␈β¬#␈¬∂ 9␈↓ αH;13 c␈↓ ∧HCENTER
␈↓ ↓H␈β¬A␈¬∂ 4␈↓ αH;14 R␈↓ ∧HRIGHTIFY
␈↓ ↓H␈β¬←␈¬∂ 9␈↓ αH;15 r␈↓ ∧HRIGHTIFY
␈↓ ↓H␈β¬⎇␈¬∂ 7␈↓ αH;16 ←+-*/\¬∧∨%L~_ Q-REGISTER ARITHMETIC
␈↓ ↓H␈βε≠␈¬∂ 7␈↓ αH;17 →␈↓ ∧HQ REGISTER DEPOSIT
␈↓ ↓H␈βε9␈¬∂ 8*␈↓ αH;62 ↑↓␈↓ ∧HQ-REGISTER SUB/SUP-SCRIPT [GENERATES ESCAPE SEQ. VIA XCT W]
␈↓ ↓H␈βεW␈¬∂ 8␈↓ αH;20 ∩∪⊗␈↓ ∧HMOVE BASELINE.
␈↓ αH␈βπ∪␈¬∂[Added by R.E.Gorin 1973-74]
␈↓ ↓H␈βπ1␈¬∂ 8␈↓ αH;21 U␈↓ ∧HUNDERSCORE
␈↓ ↓H␈βπO␈¬∂10␈↓ αH;22 P␈↓ ∧HPUSH
␈↓ ↓H␈βπm␈¬∂10␈↓ αH;23 p␈↓ ∧HPOP
␈↓ ↓H␈βλ␈¬∂ 9␈↓ αH;24 '␈↓ ∧HQUOTE WITH RUBOUT <<NOT RECOMMENDED>>
␈↓ ↓H␈βλ)␈¬∂10␈↓ αH;25 λ␈↓ ∧HSET SPECIAL LINE SPACE FROM AC0
␈↓ ↓H␈βλG␈¬∂10␈↓ αH;26 V␈↓ ∧HVECTOR
␈↓ ↓H␈βλe␈¬∂11␈↓ αH;27 Y␈↓ ∧HSet Y position
␈↓ αH␈β	!␈¬∂[Added by R.E.Maas 1974-77]
␈↓ ↓H␈β	?␈¬∂15,17␈↓ αH;30 ∞␈↓ ∧HDefine macro
␈↓ ↓H␈β	]␈¬∂15,18␈↓ αH;31 !␈↓ ∧HCall macro
␈↓ ↓H␈β	{␈¬∂15,18␈↓ αH;32 ?␈↓ ∧HIf QREGAC>0 then call macro else scan but null semantics
␈↓ ↓H␈β
→␈¬∂15,18␈↓ αH;   I␈↓ ∧HWhile QREGAC>0 continue calling macro
␈↓ ↓H␈β
7␈¬∂16␈↓ αH;33 @␈↓ ∧HRequire source file, then return
␈↓ ↓H␈β
U␈¬∂16␈↓ αH;34 α␈↓ ∧HJump to file, don't return
␈↓ ↓H␈β
s␈¬∂10*␈↓ αH;26 v␈↓ ∧Hpretty vector
␈↓ ↓H␈β⊃␈¬∂10␈↓ αH;35 Q␈↓ ∧HPUSH WITH ARG
␈↓ ↓H␈β/␈¬∂10␈↓ αH;36 q␈↓ ∧HPOP WITH ARG
␈↓ ↓H␈βM␈¬∂13␈↓ αH;37 o␈↓ ∧HDEFINE ATOMIC TEXT OVERLAY
␈↓ ↓H␈βk␈¬∂14␈↓ αH;40 O␈↓ ∧HOUTPUT OVERLAY
␈↓ ↓H␈β	␈¬∂14␈↓ αH;41 123456␈↓ ∧HLOAD QREGAC WITH PARAMETER FROM OVERLAY <<5,6 NOT WORKING>>
␈↓ ↓H␈β'␈¬∂24␈↓ αH;42 `␈↓ ∧H[TEMPORARY] SET UP VERSION FLAGS <<NOT RECOMMENDED>>
␈↓ ↓H␈βE␈¬∂14␈↓ αH;43 &␈↓ ∧HCOMBINE SEVERAL OVERLAYS INTO ONE, WITH OFFSETS EACH
␈↓ ↓H␈βc␈¬∂15␈↓ αH;44 ∂␈↓ ∧HRENAME OVERLAY IN COMPLICATED WAY
␈↓ ↓H␈β
↓␈¬∂14␈↓ αH;45 :␈↓ ∧HCLOBBER SELECTED SIZE PARAMETER OF OVERLAY
␈↓ ↓H␈β
∨␈¬∂11␈↓ αH;46 ε␈↓ ∧HSET MINIMUM BASELINE SPACING, USED IN CONJUNCTION WITH λ
␈↓ ↓H␈β
=␈¬∂ 4␈↓ αH;47 <SP><TB>␈↓ ∧HIGNORE SPACES UNTIL ; SEEN (FOR PRETTY SOURCE FILES)
␈↓ ↓H␈β
[␈¬∂ 4␈↓ αH;50 <VT>N␈↓ ∧HBREAK TO NEXT LINE HERE WITHOUT AFFECTING SYNTAX
␈↓ ↓H␈β
y␈¬∂12␈↓ αH;51 u␈↓ ∧HCALLI UUO
␈↓ ↓H␈β∞↔␈¬∂ 9␈↓ αH;52 "␈↓ ∧HQUOTE THE NEXT CHARACTER (WITHOUT RUBOUT UNLESS NEEDED)
␈↓ αH␈β∞5␈¬∂;53 n␈↓ ∧HNO PAGE CHANGE NEXT TIME <<NOT SUPPORTED>>
␈↓ ↓H␈β∞S␈¬∂ 9␈↓ αH;54 A␈↓ ∧HCVT QREG TO CHARACTER (WITHOUT RUBOUT UNLESS NEEDED) AND OUTPUT
␈↓ ↓H␈β∞q␈¬∂24␈↓ αH;55 ⊂␈↓ ∧HTURN ON DEBUG FLAGS -- VLEVE←VLEVEL∨ARG
␈↓ ↓H␈β∂∂␈¬∂24␈↓ αH;56 ⊃␈↓ ∧HTURN OFF DEBUG FLAGS -- VLEVEL←VLEVEL∧(¬ARG)
␈↓ ↓H␈β∂-␈¬∂ 8␈↓ αH;57 {[␈↓ ∧HSTART UNDERLINE [WRITES ESCAPE SEQUENCE VIA XCT W]
␈↓ 	∪␈¬α 30␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ 	∪␈¬α 31␈↓ βm␈β↓α␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ ↓H␈β↓H␈¬∂ 8␈↓ αH;60 }]␈↓ ∧HSTOP UNDERLINE [DITTO]
␈↓ ↓H␈β↓f␈¬∂ 9␈↓ αH;61 D␈↓ ∧HCONVERT DECIMAL TO STRING MACRO AND SPLICE NOW [INPDL]
␈↓ ↓H␈βα∧␈¬∂14*␈↓ αH;40 W␈↓ ∧HSAME AS O BUT FORCES ON SAME PAGE, DOES NOT AFFECT PAGE PRINTER
␈↓ ↓H␈βα"␈¬∂16␈↓ αH;63 β␈↓ ∧HDO LOOKUP ON FILE, WARN IF MISSING, BUT DON'T READ IT
␈↓ ↓H␈βα@␈¬∂16*␈↓ αH;33 ∀␈↓ ∧HSCAN OF LIBRARY OF MACRO DEFINITIONS
␈↓ ↓H␈βα↑␈¬∂10␈↓ αH;64 #␈↓ ∧HPUSH FONT# ON STACK
␈↓ ↓H␈βα|␈¬∂10␈↓ αH;65 G␈↓ ∧HPOP FONT# FROM STACK AND SELECT
␈↓ ↓H␈ββ~␈¬∂11␈↓ αH;66 y␈↓ ∧HFUDGE Y0 PARAMETERS TO ADJUST VERTICAL POS.
␈↓ ↓H␈ββ8␈¬∂11␈↓ αH;67 BbTte␈↓ ∧HSET AND READ BOTTOM MARGIN (TMAR+PMAR) OR TOP MARGIN
␈↓ ↓H␈ββV␈¬∂23␈↓ αH;70 <=>␈↓ ∧HALTERNATE-OUTPUT-FILE, OPEN OUTPUT-TO CLOSE
␈↓ ↓H␈ββt␈¬∂12␈↓ αH;71 ∃␈↓ ∧HGET DATE/TIME-LAST-WRITTEN OF INPUT FILE
␈↓ ↓H␈β∧∩␈¬∂24␈↓ αH;72 E␈↓ ∧HEXECUTE TASK ON PSEUDOTELETYPE
␈↓ ↓H␈β∧0␈¬∂16␈↓ αH;   m␈↓ ∧HMESSAGE ON TTY
␈↓ ↓H␈β∧N␈¬∂12,14␈↓ αH;73 sH␈↓ ∧Hat current x,y location, store x,,y or emit overlay-qua-character
␈↓ ↓H␈β∧l␈¬∂12␈↓ αH;74 g␈↓ ∧Hget internal parameters
␈↓ ↓H␈β¬
␈¬∂ 9␈↓ αH;75 a␈↓ ∧HPUT ASCII VALUE OF NEXT CHAR INTO QREGAC
␈↓ ↓H␈β¬(␈¬∂11␈↓ αH;76 ≤␈↓ ∧HSET MAXIMUM INTERWORD GAP
␈↓ αH␈β¬d␈¬∂[Not yet implemented]
␈↓ αH␈βεα␈¬∂;N1 X␈↓ ∧H(RESERVED FOR EXTENDED-SCANNER TO BE IMPLEMENTED SOMEDAY)
␈↓ αH␈βε ␈¬∂;N2 π␈↓ ∧H(RESERVED FOR ILLEGAL COMMAND TO ENTER DEBUG PACKAGE)
␈↓ β-␈βεf␈¬INDEX TO POX COMMANDS IN ASCII-ALPHABETICAL ORDER
␈↓ αk␈βπ∪␈¬NUMBER REFERS TO SUMMARY OF COMMANDS IN PREVIOUS TABLE
␈↓ α/␈βπ@␈¬AN ASTERISK HERE MEANS IT'S NOT LOCATED IN NUMERICAL ORDER THERE
␈↓ αH␈βπr␈¬∂xx0␈↓ βHxx1␈↓ ∧Hxx2␈↓ ¬Hxx3␈↓ εHxx4␈↓ πHxx5␈↓ λHxx6␈↓ 	Hxx7
␈↓ ↓H␈βλ∨␈¬∂00x␈↓ αHNUL 00␈↓ βH↓ 62*␈↓ ∧Hα 34␈↓ ¬Hβ 63␈↓ εH∧ 16␈↓ πH¬ 16␈↓ λHε 46␈↓ 	Hπ N2
␈↓ ↓H␈βλL␈¬∂01x␈↓ αHλ 25␈↓ βHTB 47␈↓ ∧HLF 00␈↓ ¬HVT 50␈↓ εHFF 00␈↓ πHCR 00␈↓ λH∞ 30␈↓ 	H∂ 44
␈↓ ↓H␈βλy␈¬∂02x␈↓ αH⊂ 55␈↓ βH⊃ 56␈↓ ∧H∩ 20␈↓ ¬H∪ 20␈↓ εH∀ 33*␈↓ πH∃ 71␈↓ λH⊗ 20␈↓ 	H↔
␈↓ ↓H␈β	&␈¬∂03x␈↓ αH_ 16␈↓ βH→ 17␈↓ ∧H~ 16␈↓ ¬H≠␈↓ εH≤ 76␈↓ πH≥␈↓ λH≡␈↓ 	H∨ 16
␈↓ ↓H␈β	S␈¬∂04x␈↓ αHSP 47␈↓ βH! 31␈↓ ∧H" 52␈↓ ¬H# 64␈↓ εH$␈↓ πH% 16␈↓ λH& 43␈↓ 	H' 24
␈↓ ↓H␈β
␈¬∂05x␈↓ αH( (?)␈↓ βH)␈↓ ∧H* 16␈↓ ¬H+ 16␈↓ εH, 04␈↓ πH- 16␈↓ λH. 03␈↓ 	H/ 16
␈↓ ↓H␈β
-␈¬∂06x␈↓ αH0␈↓ βH1 41␈↓ ∧H2 41␈↓ ¬H3 41␈↓ εH4 41␈↓ πH5 (41)␈↓ λH6 (41)␈↓ 	H7 41
␈↓ ↓H␈β
Z␈¬∂07x␈↓ αH8 30␈↓ βH9␈↓ ∧H: 45␈↓ ¬H; 03␈↓ εH< 70␈↓ πH= 70␈↓ λH> 70␈↓ 	H? 32
␈↓ ↓H␈βπ␈¬∂10x␈↓ αH@ 33␈↓ βHA 54␈↓ ∧HB 67␈↓ ¬HC 12␈↓ εHD 61␈↓ πHE 72␈↓ λHF 05␈↓ 	HG 65
␈↓ ↓H␈β4␈¬∂11x␈↓ αHH 73␈↓ βHI 32␈↓ ∧HJ 10␈↓ ¬HK␈↓ εHL 16␈↓ πHM 02␈↓ λHN 50␈↓ 	HO 40
␈↓ ↓H␈βa␈¬∂12x␈↓ αHP 22␈↓ βHQ 35␈↓ ∧HR 14␈↓ ¬HS 07␈↓ εHT 67␈↓ πHU 21␈↓ λHV 26␈↓ 	HW 40*
␈↓ ↓H␈β∞␈¬∂13x␈↓ αHX N1␈↓ βHY 27␈↓ ∧HZ␈↓ ¬H[ 57␈↓ εH\ 16␈↓ πH] 60␈↓ λH↑ 62*␈↓ 	H← 16
␈↓ ↓H␈β;␈¬∂14x␈↓ αH` 42␈↓ βHa 75␈↓ ∧Hb 67␈↓ ¬Hc 13␈↓ εHd␈↓ πHe 67␈↓ λHf 06␈↓ 	Hg 74
␈↓ ↓H␈βh␈¬∂15x␈↓ αHh␈↓ βHi␈↓ ∧Hj 11␈↓ ¬Hk␈↓ εHl␈↓ πHm 72␈↓ λHn 53␈↓ 	Ho 37
␈↓ ↓H␈β
∃␈¬∂16x␈↓ αHp 23␈↓ βHq 36␈↓ ∧Hr 15␈↓ ¬Hs 73␈↓ εHt 67␈↓ πHu 51␈↓ λHv 26*␈↓ 	Hw (26)
␈↓ ↓H␈β
B␈¬∂17x␈↓ αHx␈↓ βHy 66␈↓ ∧Hz␈↓ ¬H{ 57␈↓ εH| 01␈↓ πHALT 00␈↓ λH} 60␈↓ 	HBS 00
␈↓ α_␈β
}␈¬β(To␈αuse␈αthe␈αabove␈αtable␈αto␈αlocate␈αthe␈αcommand␈αcorresponding␈αto␈αa␈αparticular␈αcharacter,␈αlook␈αup
␈↓ ↓H␈β∞≤␈¬βthe␈α∩character␈α∩according␈α∩to␈α∩ASCII␈α∩number,␈α∩use␈α∩the␈α∩numerical␈α∩entry␈α∩in␈α∩the␈α⊃table␈α⊃to␈α⊃reference␈α⊃the
␈↓ ↓H␈β∞:␈¬βpreceding␈αtable,␈α
and␈α
read␈α
the␈α
description␈α
on␈α
that␈α
table.␈α∀That␈α
first␈α
table␈α
now␈α
includes␈α
page␈α
numbers␈α
for
␈↓ ↓H␈β∞X␈¬βyour␈α∂convenience␈α∂in␈α∂locating␈α∂the␈α∂full␈α∂description␈α∂elsewhere␈α∂in␈α∂this␈α∂writeup.␈α≡The␈α∞table␈α∞of␈α∞contents,
␈↓ ↓H␈β∞v␈¬βhowever,␈α
will␈α
usually␈α
be␈α
more␈α
useful␈α
for␈α
locating␈α
general␈α
types␈α
of␈α
commands.)
␈↓ 	∪␈¬α 31␈↓ βm␈β⊂ ␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
␈↓ βf␈β↓H␈¬PROTOTYPE OVERLAY XEROGRAPHICS -- WRITEUP
␈↓ ε
␈β↓u␈¬CONTENTS
␈↓ ∧∀␈βαT␈¬β(page numbers here can be used to select individual pages for XSPOOLing) ↓↓
␈↓ ↓H␈βα|␈¬Contents [this page, generated after p.31, bound before p.1]␈¬α␈↓ ]i
␈∧β≤↓H↓
≡␈∧β!↓H↓
≡␈↓ ↓H␈ββ)␈¬Introduction␈↓ G 1
␈↓ α(␈ββV␈¬Sample POX manuscript␈↓ G 2
␈↓ α(␈β∧β␈¬This writeup, organization, modes, notation␈↓ G 2
␈↓ α(␈β∧0␈¬BNF notation used in this writeup␈↓ G 3
␈∧∧P↓H↓
≡␈∧∧U↓H↓
≡␈↓ ↓H␈β∧]␈¬Basic commands␈↓ G 3
␈↓ α(␈β¬
␈¬Table of modes and commands␈↓ G 4
␈↓ α(␈β¬7␈¬Examples␈↓ G 5
␈↓ ↓H␈β¬d␈¬Linefeed simulator␈↓ G 6
␈∧ε∧↓H↓
≡␈∧ε	↓H↓
≡␈↓ ↓H␈βε⊃␈¬Registers and XY coordinates␈↓ G 6
␈↓ α(␈βε>␈¬Arguments to commands␈↓ G 6
␈↓ α(␈βεk␈¬Commands (most of the POX commands are in this section...)␈↓ G 7
␈↓ α(␈βπ_␈¬...Vectors...␈↓ @10
␈↓ α(␈βπE␈¬...Interline spacing...␈↓ @10
␈↓ α(␈βπr␈¬Examples␈↓ @12
␈∧λ∩↓H↓
≡␈∧λ↔↓H↓
≡␈↓ ↓H␈βλ∨␈¬Overlays␈↓ @13
␈↓ α(␈βλL␈¬Examples␈↓ @15
␈∧λl↓H↓
≡␈∧λq↓H↓
≡␈↓ ↓H␈βλy␈¬Macros without arguments, require source files␈↓ @15
␈↓ α(␈β	&␈¬Examples␈↓ @17
␈∧	F↓H↓
≡␈∧	K↓H↓
≡␈↓ ↓H␈β	S␈¬Macros with arguments␈↓ @17
␈↓ α(␈β
␈¬Commands␈↓ @17
␈↓ α(␈β
-␈¬Detailed algorithm of evaluation␈↓ @19
␈↓ α(␈β
Z␈¬Examples␈↓ @20
␈↓ α(␈βπ␈¬Detailed examples of argument evaluation␈↓ @20
␈↓ α(␈β4␈¬Advanced examples (MONTH<N>, EVAL, RECURSE, DEFCONT, EVERYPAGE) ␈↓ @21
␈↓ ↓H␈βa␈¬Alternate output (text) files␈↓ @23
␈∧↓↓H↓
≡␈∧ε↓H↓
≡␈↓ ↓H␈β∞␈¬Special-feature bits␈↓ @24
␈↓ α(␈β;␈¬Batch 0␈↓ @25
␈↓ α(␈βh␈¬Batch 1␈↓ @26
␈↓ α(␈β
∃␈¬Examples␈↓ @26
␈∧
5↓H↓
≡␈∧
:↓H↓
≡␈↓ ↓H␈β
B␈¬Remarks on using the POX program␈↓ @26
␈↓ α(␈β
o␈¬Backtrace/Error package␈↓ @26
␈↓ α(␈β∞≤␈¬Known bugs in POX (by number)␈↓ @27
␈↓ α(␈β∞I␈¬Notes (by number)␈↓ @28
␈↓ α(␈β∞v␈¬Trivia␈↓ @29
␈∧∂⊗↓H↓
≡␈∧∂≠↓H↓
≡␈↓ ↓H␈β∂#␈¬Appendix␈↓ @30
␈↓ α(␈β∂P␈¬Chronological list of commands (with page references)␈↓ @30
␈↓ α(␈β∂⎇␈¬ASCII sequence table␈↓ @31
␈↓ 	≤␈¬α i␈↓ βv␈β⊂9␈¬αPOX writeup, last edited 1979 MAY 10  0:58 -- page 
/FONT#0=NGR30/FONT#2=BDI25= #()+,-./0123456789:ABCEFHILMNOPRSTVWXYZabcdefghiklmnopqrstuvwxyy/FONT#3=NGR25=↓¬ελ∞∀∃⊗_→ !"#$'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXY[\]←abcdefghijklmnopqrstuvwxyz{|}}/FONT#4=NGB25[  1,REM]= $(),.12457:ACDEGHILMNRSTXY[]abcdefghiklmnopqrstuvwxyy/FONT#5=NGR20[  1,REM]=↓∧∂⊂⊃∩∪⊗_→≤≥∨ !"$%()+,-./012<=>ABCDEFGHIKLMNOPRSTUVWXY[]↑←abcdefghijklmnopqrstuvwxy{|}}/FONT#6=XMAS25=abcdefghijklmnopqrstuvwxyzz/FONT#7=75224X[  1,REM]=11/FONT#9=GRK30=inn/FONT#12=75224X[  1,REM]=11/FONT#14=GRKL50=SS/FONT#15=FIX25=↓αβ∧¬επλ	

∞∂⊂⊃∩∪∀∃⊗↔_→~≠≤≥≡∨ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]↑←`abcdefghijklmnopqrstuvwxyz{|⎇}␈␈